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