OliBomby
8d72ec8bd6
move timing point binary search back inline
2024-08-21 01:50:52 +02:00
OliBomby
2e11172e8e
Take into account next timing point when snapping time
2024-08-16 01:01:24 +02:00
OliBomby
ac064e814f
Add BinarySearchUtils
2024-08-16 00:15:40 +02:00
Dean Herbert
0eb533f2fd
Merge pull request #28444 from bdach/scrolling-ruleset-editor-reloads
...
Reload scrolling hitobject composer on control point changes
2024-06-20 15:15:26 +09:00
Dan Balasescu
f86e9c9a4a
Also annotate ControlPointInfo
...
Same deal with this class. Fully qualifying the type names because this
has `#nullable disable` and makes use of `NotNull` which is also present
in the `System.Diagnostics.CodeAnalysis` namespace and AAAAAAARGH
NAMESPACE CONFLICTS.
2024-06-17 17:13:44 +09:00
Bartłomiej Dach
694cfd0e25
Expose singular coarse-grained change event on ControlPointInfo
2024-06-11 09:16:45 +02:00
ansel
51e21ee6f0
Make snapped time always positive
2023-01-12 03:38:57 +03:00
Berkan Diler
08d2fbeb8e
Use new ArgumentNullException.ThrowIfNull throw-helper API
2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dean Herbert
192536643c
Fix some more inspections
2022-12-16 20:21:19 +09:00
Dean Herbert
5c13c443ff
Fix incorrect fallback logic
...
Regressed when attempting to share implementation of binary search.
2022-10-20 23:08:44 +09:00
Dean Herbert
a754dc6d3b
Expose binary search methods publicly
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2022-10-20 14:34:07 +09:00
Dean Herbert
ec3761ced9
Standardise control point search logic in OverlappingScrollAlgorithm
...
Was using a very local algorithm which I cannot guarantee is correct.
I'd rather it just use the one used everywhere else.
2022-10-18 16:01:05 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Bartłomiej Dach
d0c01afc2e
Add flow for changing set of valid divisors between presets
2022-02-27 15:37:51 +01:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
eabca016d4
Throw rather than ignore on invalid control point addition
2021-09-06 22:04:37 +09:00
Dean Herbert
db3fc1d4af
Move DifficultyControlPoint
s list to LegacyControlPointInfo
2021-09-03 16:58:16 +09:00
Dean Herbert
a2cff75fc0
Fix editor not cloning control points as expected
2021-08-30 21:55:08 +09:00
Dean Herbert
ccacf56dd8
Move to legacy namespace
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
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
Dean Herbert
5944c45f55
Specify types explicitly and don't handle non-nullable values with fallbacks
2021-06-16 16:24:30 +09:00
Justus Franklin Tumacder
0d077b7a5d
Fix GetClosestBeatDivisor returning the wrong divisor
2021-05-01 14:13:42 +08:00
Dean Herbert
859898d98f
Refactor lookup methods to avoid linq and reduce TimingPointAt
calls
2021-04-28 17:16:05 +09:00
Dean Herbert
c5186b6a69
Revert return values to non-rounded doubles
2021-04-28 16:59:49 +09:00
Dean Herbert
f3c7694eeb
Rename methods to match generally how these find-methods are named elsewhere
2021-04-28 16:57:52 +09:00
Dean Herbert
48d6c9ac4b
Move snap/divisor helper methods to inside ControlPointInfo
2021-04-28 16:47:30 +09:00
smoogipoo
c6e9a6cd5a
Make most common BPM more accurate
2021-01-15 14:28:49 +09:00
Dean Herbert
caa88c6100
Use CreateCopy instead of Clone interface
...
I was going for conformity by using the IClonable interface, but it
doesn't look like we use it anywhere else in the project.
2021-01-05 13:13:52 +09:00
Dean Herbert
ba4e411422
Clone and copy ControlPointInfo when retrieving a playable beatmap
2021-01-04 16:37:07 +09:00
Dean Herbert
3adf451e82
Handle changes via SamplePoints list for simplicity
2020-11-02 14:40:40 +09:00
Dean Herbert
f501c88b46
Fix individual control points not being removed from group when group is removed
2020-10-02 15:28:21 +09:00
Dean Herbert
3823bd8343
Add back missing default implementations for lookup functions
2020-07-19 14:11:21 +09:00
Dean Herbert
7250bc351d
Remove unnecessary new() specification
2020-07-18 12:06:41 +09:00
Dean Herbert
8147e67f53
Use static instances in all fallback ControlPoint lookups to reduce allocations
2020-07-18 11:53:04 +09:00
smoogipoo
9252b7876b
Don't serialise AllControlPoints
2020-04-21 13:58:23 +09:00
smoogipoo
0fba93bf65
Add back null check
2020-04-17 17:10:13 +09:00
smoogipoo
9aac98664c
Remove unnecessary time property
2020-04-17 17:06:12 +09:00
Alchyr
65823fb2e1
Use redundancy test
2020-04-08 01:42:35 -07:00
Dean Herbert
036efb9947
Merge branch 'master' into fix-effect-points
2019-12-18 01:43:15 +09:00
Huo Yaoyuan
c457571da6
Use index and range expressions
2019-12-15 20:17:35 +08:00
smoogipoo
87a7f340e3
Fix first sample point being treated as redundant
2019-12-13 18:14:01 +09:00
Huo Yaoyuan
b1b234c6fb
Use paramref.
2019-11-17 20:49:36 +08: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
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