Dean Herbert
944da06c10
Rename slider multiplier variable back for now
2023-05-09 16:58:19 +09:00
Dean Herbert
f7d44c3013
Rename SliderMultiplier
to BaseSliderVelocity
2023-05-08 13:13:09 +09:00
Dean Herbert
f930c4bd0a
Move struct
to bottom of file
2023-05-03 13:33:31 +09:00
Dean Herbert
48fd99818e
Split out default and sample application
2023-05-03 13:30:45 +09:00
Dean Herbert
cca15f930c
Refactor applyLegacyInfoAndDefaults
for legibility
2023-05-03 13:26:50 +09:00
Dean Herbert
588a4e6196
Move pragma disable to top of LegacyBeatmapDecoder
...
Makes more sense as it's used multiple times in the class.
2023-05-03 13:19:14 +09:00
OliBomby
8c21fddb5e
remove all redundancies from encoded control points
2023-05-01 16:53:38 +02:00
OliBomby
8302bb1f37
dont encode custom sample bank for objects without legacy samples
2023-05-01 14:56:29 +02:00
OliBomby
cef9f73d34
dont assign custom sample bank and volume to hitobjects in non-mania gamemodes
...
this makes it easier to edit hitsounds in the stable editor after export because the sample control point effects wont get overwritten by the properties of the hitobject
2023-05-01 12:31:27 +02:00
OliBomby
608fa3cc73
Merge remote-tracking branch 'upstream/master' into sample-control-points
2023-04-30 19:47:03 +02:00
OliBomby
139a1d7e6d
fix legacy encoder writing sample info while not writing node samples
2023-04-30 17:46:47 +02:00
OliBomby
c44f71a737
remove all regular usage of DifficultyControlPoint
2023-04-26 17:55:38 +02:00
OliBomby
1b4f4372d5
fixed sample control point applying
2023-04-26 14:32:12 +02:00
OliBomby
5accb05f45
fix invalidoperation exception
2023-04-26 14:28:48 +02:00
OliBomby
6c70948681
Remove IContext & add IHasGenerateTicks
2023-04-26 13:10:57 +02:00
OliBomby
c37875bee8
remove hitobject SampleControlPoint usage from LegacyBeatmapEncoder
2023-04-25 16:00:40 +02:00
OliBomby
891b87a5ff
remove ApplyLegacyInfo method
2023-04-25 12:52:21 +02:00
OliBomby
ea1e6e9798
Add LegacyContext
2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2
made the SampleControlPoint and DifficultyControlPoint obsolete
2023-04-25 11:34:09 +02:00
Haspamelodica
e90660c1a4
Switched to lowercase
2023-04-21 02:35:28 +02:00
Haspamelodica
b62de5514c
Fixed video importing bug #23259
2023-04-21 02:10:24 +02:00
Dean Herbert
da947d8661
Gracefully handle beatmaps specifying images using the video storyboard type
2023-03-13 18:24:16 +09:00
Dean Herbert
044b0604b2
Move OmitFirstBarLine
to TimingControlPoint
2023-02-28 19:29:31 +09:00
Salman Ahmed
4491a5ba9f
Fix editor exporting beatmap combo colours in wrong order
2023-01-03 13:41:08 +03:00
Berkan Diler
182f36c434
Use StringSplitOptions.TrimEntries for string.Split() when possible
2022-12-27 09:41:58 +01:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs
2022-12-26 23:12:53 +01:00
Berkan Diler
fcbb21c75e
Fix typo
2022-12-26 20:38:35 +01:00
Berkan Diler
c7ca4bbba5
Use generic Enum methods
2022-12-26 20:36:39 +01:00
Berkan Diler
08d2fbeb8e
Use new ArgumentNullException.ThrowIfNull throw-helper API
2022-12-22 21:27:59 +01:00
Dean Herbert
3da21e596a
Add support for storyboards with incorrect path specifications (\\
instead of \
)
...
Closes https://github.com/ppy/osu/issues/21204 .
2022-11-21 16:12:01 +09:00
Dean Herbert
064a245c50
Don't trim whitespace from variable keys / values
2022-11-08 13:30:11 +09:00
Dean Herbert
b764d1bd04
Decode variables earlier in flow in case they include indent logic
...
Without this change, the `depth` calculation could be incorrect.
2022-11-08 13:29:42 +09:00
Dean Herbert
42eafe318c
Remove various simple obsoletions
2022-10-28 13:20:58 +09:00
Dan Balasescu
6177df2a24
Merge branch 'master' into fix-17143
2022-10-25 13:44:58 +09:00
Dean Herbert
677b8d09f8
Fix huge oversight causing test failures
2022-10-19 23:54:12 +09:00
Dean Herbert
579d5b51eb
Add and consume sample bank constants
2022-10-19 20:47:58 +09:00
Dean Herbert
59e2478b0e
Fix some older beatmaps having missing backgrounds
...
Closes https://github.com/ppy/osu/issues/20824 .
Note that this will require a reimport of beatmaps as it is baked into the database. Probably not worth making a migration for at this point in time.
2022-10-19 16:01:10 +09:00
Dan Balasescu
338115ff6a
Move check to LegacyDifficultyControlPoint
2022-10-13 15:05:15 +09:00
sw1tchbl4d3
df0501235d
Introduce BpmMultiplierMania
, remove after the fact clamps
2022-10-12 11:14:01 +02:00
sw1tchbl4d3
f8036658c7
Move clamps directly to the usages in the conversion algorithm
2022-10-10 09:36:18 +02:00
sw1tchbl4d3
e0904e263f
Fix legacy BpmMultiplier clamp value
2022-10-09 11:25:47 +02:00
Dean Herbert
992441b9de
Disable alpha component parsing in beatmap / skin colour sections
2022-09-21 16:11:41 +09:00
Khang
adea29c106
Fix test failures
2022-08-24 03:37:33 -04:00
Khang
c9f364d6a0
Document why beatLength can be NaN
2022-08-24 02:10:19 -04:00
Khang
c1ced85b5e
Move GenerateTicks to LegacyDifficultyControlPoint and remove support for NaN slider velocity support for other rulesets (at least for now)
2022-08-23 14:07:18 -04:00
Khang
9f08c474ca
Treat NaN slider velocity timing points as 1.0x but without slider ticks
2022-08-22 21:58:38 -04:00
Khang
e8d4bc4497
Allow NaN during beatmap parsing if desired
2022-08-22 21:04:26 -04:00
Dean Herbert
a52ea3cabe
Enable NRT and simplify LineBufferedReader
2022-07-06 14:57:56 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
97fcf8cec9
Merge pull request #18668 from smoogipoo/editor-controlpoint-undo-redo
2022-06-23 04:02:24 +09:00
Dan Balasescu
16281f4a48
Properly annotate method to allow null
2022-06-20 16:56:19 +09:00
Dean Herbert
d38defada4
Silence exception and provide more log output when import fails due to empty .osu
files
2022-06-20 16:07:10 +09:00
Dan Balasescu
03ab6fc141
Implement IEquatable on ControlPoint
2022-06-20 15:27:43 +09:00
Dan Balasescu
468e5fcbed
Merge branch 'master' into editor-controlpoint-undo-redo
2022-06-20 13:47:01 +09:00
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