1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 04:57:27 +08:00
Commit Graph

173 Commits

Author SHA1 Message Date
Bartłomiej Dach
c2dd2ad978
Clamp beat divisor to sane range when decoding
In my view this is a nice change, but do note that on its own it does
nothing to fix https://github.com/ppy/osu/issues/29492, because of
`BeatmapInfo` reference management foibles when opening the editor. See
also: https://github.com/ppy/osu/issues/20883#issuecomment-1288149271,
https://github.com/ppy/osu/pull/28473.
2024-08-20 13:52:29 +02:00
Dan Balasescu
537e3a1642
Merge pull request #28619 from bdach/fix-tail-volume-not-saving
Fix slider tail volume not saving
2024-07-03 16:13:18 +09:00
Dean Herbert
5350945340
Update HasFlag usages 2024-07-03 00:19:04 +09:00
Bartłomiej Dach
fff27e619d
Fix slider tail volume not saving
Closes https://github.com/ppy/osu/issues/28587.

As outlined in the issue thread, the tail volume wasn't saving because
it wasn't actually attached to a hitobject properly, and as such the
`LegacyBeatmapEncoder` logic, which is based on hitobjects, did not
pick them up on save.

To fix that, switch to using `NodeSamples` for objects that are
`IHasRepeats`. That has one added complication in that having it work
properly requires changes to the decode side too. That is because the
intent is to allow the user to change the sample settings for each node
(which are specified via `NodeSamples`), as well as "the rest of the
object", which generally means ticks or auxiliary samples like
`sliderslide` (which are specified by `Samples`).

However, up until now, `Samples` always queried the control point
which was _active at the end time of the slider_. This obviously can't
work anymore when converting `NodeSamples` to legacy control points,
because the last node's sample is _also_ at the end time of the slider.
To bypass that, add extra sample points after each node (just out of
reach of the 5ms leniency), which are supposed to control volume of
ticks and/or slides.

Upon testing, this *sort of* has the intended effect in stable, with
the exception of `sliderslide`, which seems to either respect or _not_
respect the relevant volume spec dependent on... not sure what, and not
sure I want to be debugging that. It might be frame alignment, or it
might be the phase of the moon.
2024-06-26 15:52:16 +02:00
Dean Herbert
73cb363eba
Make some more methods static 2024-05-22 23:26:23 +08:00
Bartłomiej Dach
f7ca18b52e
Menial cleanups 2024-05-22 15:52:57 +02:00
Aurelian
b25987ffe7 Changed allowed mania keys, and reverted 0af32c5 2024-05-22 11:37:55 +02:00
Aurelian
1127a69359 Moved DIfficulty Clamping to occur after the file has been parsed
This is to handle potential issues with the ruleset being parsed after circle size has been parsed.
2024-05-21 10:15:53 +02:00
Aurelian
db8b72eb37 Clamped Difficulty Ranges to [0,10] 2024-05-20 16:23:16 +02:00
Bartłomiej Dach
f0eef32913
Fix code quality inspection 2024-05-01 15:21:39 +02:00
Dean Herbert
44091b1f35
Fix some lines still getting forgotten about 2024-05-01 17:33:03 +08:00
Dean Herbert
ba9f4e4baf
Don't skip lines in beatmap decoding
Was added in cc76c58f5f without any
specific reasoning. Likely not required (and will fix some storyboard
elements inside `.osu` files from not being correctly saved).
2024-04-30 16:42:15 +08:00
Dean Herbert
fd3f4a9e7b
Preserve storyboard events when saving a beatmap in the editor
Until we have full encoding support for storyboards, this stop-gap
measure ensures that storyboards don't just disappear from existence.
2024-04-30 00:01:56 +08:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
Dan Balasescu
cb4568c4a1
Fix first object after break not starting a new combo 2023-11-22 17:22:48 +09:00
Bartłomiej Dach
c89081589c
Fix insufficient leniency when querying sample points 2023-10-20 10:26:16 +02:00
Dean Herbert
2781846147
Fix beatmaps with no preview point set getting incorrect default
Note that this will require a re-import to fix existing beatmaps
becuse.. it's stored to realm. Probably not worth worrying about for
now.
2023-10-10 19:13:16 +09:00
Bartłomiej Dach
2bb869732e
Delete outdated warning disables 2023-09-07 18:47:01 +02:00
Dean Herbert
b34a36f6ce Remove all usage of LegacyDifficultyControlPoint 2023-09-07 17:41:57 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Dean Herbert
49fc9655d2 Apply NRT to osu.Game.Betamaps.Formats namespace 2023-08-16 19:37:24 +09:00
Dean Herbert
298989ffd2 Merge branch 'master' into sample-set-controls 2023-05-24 14:03:04 +09:00
Dean Herbert
ca5e8b290f Add clamping to SliderMultiplier and SliderTickRate at parsing time 2023-05-09 20:53:20 +09:00
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
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
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
1b4f4372d5 fixed sample control point applying 2023-04-26 14:32:12 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +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
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
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
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
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
ekrctb
dcf0d5a9d5 Fix slider velocity wrongly decoded as scrolling speed in osu!catch 2022-05-08 21:49:42 +09:00