Bartłomiej Dach
3dc2408965
Merge branch 'master' into bat-max-performance
2024-11-01 13:13:20 +01:00
Bartłomiej Dach
7e3564cb4a
Bring back matching by filename when performing online metadata lookups
2024-10-30 10:25:20 +01:00
Bartłomiej Dach
2b0fd3558f
Remove more no-longer-required checks
...
The scenario that remaining guard was trying to protect against is
obviated by and no longer possible after
776fabd77c
.
2024-10-30 08:44:23 +01:00
Bartłomiej Dach
776fabd77c
Only use MD5 when performing metadata lookups
...
Both online and offline using the cache.
The rationale behind this change is that in the current state of
affairs, `TestPartiallyMaliciousSet()` fails in a way that cannot be
reconciled without this sort of change.
The test exercises a scenario where the beatmap being imported has an
online ID in the `.osu` file, but its hash does not match the online
hash of the beatmap. This turns out to be a more frequent scenario than
envisioned because of users doing stupid things with manual file editing
rather than reporting issues properly.
The scenario is realistic only because the behaviour of the endpoint
responsible for looking up beatmaps is such that if multiple parameters
are given (e.g. all three of beatmap MD5, online ID, and filename), it
will try the three in succession:
f6b341813b/app/Http/Controllers/BeatmapsController.php (L260-L266)
and the local metadata cache implementation reflected this
implementation.
Because online ID and filename are inherently unreliable in this
scenario due to being directly manipulable by clueless or malicious
users, neither should not be used as a fallback.
2024-10-30 08:12:30 +01:00
Bartłomiej Dach
1a2e323c11
Remove problematic online ID check
2024-10-30 07:40:08 +01:00
Dean Herbert
5939c78760
Merge branch 'master' into auto-addition2
2024-10-23 15:53:07 +09:00
Dean Herbert
8193038986
Expose no-op constructors as protected
2024-10-18 13:30:29 +09:00
Dan Balasescu
bfcf6693ca
Simplify implementation
2024-10-17 20:00:17 +09:00
Dan Balasescu
d195a69447
Compute maximum performance along with difficulty
2024-10-17 19:26:19 +09:00
Dean Herbert
53671ad11e
Only update beatmaps which actually had offsets
...
Without this every beatmap gets a write and it reloads the whole of song
select, basically.
2024-10-14 00:35:18 +09:00
Artemis Rosman
e4f9c861ba
Add functionality to mass reset offsets
2024-10-13 00:50:45 +11:00
Dean Herbert
307cc5581d
Fix usage of locked context without locking
...
Raised in the latest Rider EAP, seems valid enough.
2024-10-01 18:01:06 +09:00
OliBomby
0a78eb9628
Implement auto additions editor-only
2024-10-01 16:40:48 +09:00
Dean Herbert
89e8baf1d3
Add inline comments for iOS locals
2024-09-26 16:48:42 +09:00
Dan Balasescu
3ab04d98f6
Fix Realm-related iOS crashes by removing object references
2024-09-25 16:45:37 +09:00
Dean Herbert
58fe502af4
Merge branch 'master' into beatmap-info-purge
2024-09-15 04:53:35 +09:00
Bartłomiej Dach
a4f6d4a300
Backpopulate missing ranked/submitted dates using new local metadata cache
...
People keep asking why https://github.com/ppy/osu/pull/29553 didn't fix
their databases (as stated in the PR, it didn't intend to), so this
should do it for them.
2024-09-13 16:00:49 +02:00
Dan Balasescu
5d09aaae27
Merge pull request #29446 from OliBomby/last-anchor
...
Fix path control points losing curve type on save/reload or undo
2024-09-02 18:40:19 +09:00
Bartłomiej Dach
bd6943ebc2
Merge pull request #29537 from normalid-awa/feature/song-select/allow-copy-url-from-context-menu
...
Allow copying beatmap link in song select carousel context menu
2024-08-22 14:03:39 +02:00
Dean Herbert
066c34e950
Merge pull request #29553 from bdach/local-cache-updates
...
Add support for retrieving submit/rank date from local metadata cache in version 2
2024-08-22 14:55:43 +09:00
Dean Herbert
87123d99bf
Move URL implementation to extension methods and share with other usages
2024-08-22 02:08:01 +09:00
Dean Herbert
a943000579
Merge pull request #29435 from OliBomby/improve-snaps
...
Fix timeline snapping ignoring nearby timing points
2024-08-22 01:36:30 +09:00
Bartłomiej Dach
5f88435d96
Add support for retrieving submit/rank date from local metadata cache in version 2
...
Closes https://github.com/ppy/osu/issues/22416 .
2024-08-21 15:42:22 +02:00
OliBomby
8d72ec8bd6
move timing point binary search back inline
2024-08-21 01:50:52 +02:00
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
OliBomby
4cc38cea63
fix last anchor converting to implicit segment
2024-08-16 14:24:03 +02:00
Joseph Madamba
e2bf02cf94
Fix preview play button having incorrect click area
2024-08-15 22:49:12 -07:00
Joseph Madamba
fda17a5a72
Expose BeatmapCardNormal
height const
2024-08-15 22:49:12 -07: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
d2c1d83567
Merge branch 'master' into daily-challenge-intro-audio-auto-download
2024-08-10 01:21:43 +09:00
Dean Herbert
d072c6a743
Fix hit object coordinates being truncated to int
values
...
Closes https://github.com/ppy/osu/issues/29340 .
2024-08-09 16:34:39 +09:00
Dean Herbert
5d66eda982
Add support for automatically downloading daily challenge during the intro display
2024-08-08 15:10:18 +09:00
Dean Herbert
60fc02bb9b
Merge branch 'master' into feature/skin/legacy-input-overlay
2024-08-06 14:05:33 +09:00
Dean Herbert
dc73856f76
Fix original date not being restored when no changes are made on an import-as-update operation
2024-08-02 20:46:03 +09:00
Bartłomiej Dach
3c28c116ca
Simplify input overlay text colour decode (and fix incorrect default)
2024-07-24 14:53:01 +02:00
normalid
b24be96d04
Fix code quality
2024-07-24 12:57:30 +08:00
normalid
c52a993607
Support custom input overlay color
2024-07-23 23:35:25 +08:00
Bartłomiej Dach
1d4d806362
Fix WidescreenStoryboard
breakage after moving out of BeatmapInfo
2024-07-23 12:19:45 +02:00
Dean Herbert
d707e29ff7
Merge branch 'master' into beatmap-info-purge
2024-07-23 12:09:32 +09:00
Dean Herbert
f11f01f9b7
Fix various visuals of playlist beatmap panels
...
Supersedes https://github.com/ppy/osu/pull/28907 .
- Fix border being fat
- Fix thumbnail not masking correctly
- Fix background layer not being correctly fit to the panel
- Dim the main background on hover
- Minor tweaks to dimming
2024-07-19 19:26:04 +09:00
Dean Herbert
e6b7d2530e
Change red shade for timing control points
2024-07-12 13:39:40 +09:00
Dean Herbert
95464ebf36
Merge branch 'master' into timeline-redesign
2024-07-11 18:38:17 +09:00
Dean Herbert
b5bb94e4ec
Merge branch 'master' into file-mounting-v3
2024-07-11 15:54:54 +09:00
Dean Herbert
2eb6cf57af
Fix incorrect continuation in ImportAsUpdate
causing UI blockage
2024-07-11 13:42:24 +09:00
Dean Herbert
2ba1ebe410
Fix beatmap card progress bar becoming pancake when starting
2024-07-10 19:19:49 +09:00
Dean Herbert
d3c66e2404
Add basic flow for mounting beatmaps for external editing
2024-07-10 18:29:51 +09:00
Bartłomiej Dach
5d5dd0de00
Redesign bottom timeline pieces to match stable better
2024-07-09 09:25:22 +02:00
Bartłomiej Dach
0d22c9a9c6
Pass comparer in all usages for consistency
2024-07-08 15:58:21 +02:00
Salman Ahmed
b33e54d064
Enforce IBeatmap.Breaks
to be sorted chronologically
2024-07-08 16:06:38 +03: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
d4a8f6c8b0
Do not add extra sample control point after end of IHasRepeats
objects
2024-07-02 09:13:07 +02:00
Dan Balasescu
04da1209f7
Revert "Change breaks list to IReadOnlyList
"
...
This reverts commit 2c3b411bb5
.
2024-07-02 12:16:11 +09:00
Dan Balasescu
db84711214
Revert "Move break cloning back to non-virtual method"
...
This reverts commit f69bc40a4b
.
2024-07-02 12:16:10 +09:00
Dean Herbert
f69bc40a4b
Move break cloning back to non-virtual method
2024-07-02 12:07:13 +09:00
Dean Herbert
2c3b411bb5
Change breaks list to IReadOnlyList
2024-07-02 11:59:24 +09:00
Dean Herbert
f694ae416e
Fix typo in xmldoc
2024-07-02 11:47:40 +09:00
Dean Herbert
005af280f2
Isolate bindable breaks list to EditorBeatmap
2024-07-02 11:31:55 +09:00
Dan Balasescu
f942595829
Fix ManiaModInvert
permanently messing up the beatmap
2024-07-01 15:02:00 +09:00
Bartłomiej Dach
847946937e
Fix test failures
2024-06-26 16:56:43 +02: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
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
Bartłomiej Dach
617c1341d7
Make (Manual)BreakPeriod
a class again
...
CodeFileSanity doesn't like records and it being a record wasn't doing
much anymore anyway.
2024-06-19 14:53:09 +02:00
Bartłomiej Dach
4022a8b06c
Implement automatic break period generation
2024-06-19 10:22:06 +02:00
Bartłomiej Dach
1f692f5fc7
Make BreakPeriod
a struct
2024-06-19 09:01:33 +02:00
Bartłomiej Dach
6a6ccbc09f
Make list of breaks bindable
2024-06-19 07:44:03 +02: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
Dan Balasescu
41446a08b6
Annotate ControlPoint and Mod for AOT trimming support
2024-06-17 16:19:33 +09:00
Bartłomiej Dach
9fbf2872e1
Remove no longer applicable region marking
2024-06-12 14:27:40 +02:00
Bartłomiej Dach
dd50d6fa6e
Move CountdownOffset
out of BeatmapInfo
2024-06-12 14:15:00 +02:00
Bartłomiej Dach
d373f752d6
Move Countdown
out of BeatmapInfo
2024-06-12 14:15:00 +02:00
Bartłomiej Dach
7f2a6f6f5a
Move TimelineZoom
out of BeatmapInfo
2024-06-12 14:15:00 +02:00
Bartłomiej Dach
6685c5ab74
Move GridSize
out of BeatmapInfo
2024-06-12 14:15:00 +02:00
Bartłomiej Dach
3634307d7c
Move DistanceSpacing
out of BeatmapInfo
2024-06-12 14:14:58 +02:00
Bartłomiej Dach
c216283bf4
Move SamplesMatchPlaybackRate
out of BeatmapInfo
2024-06-12 13:32:23 +02:00
Bartłomiej Dach
f64a0624a5
Move EpilepsyWarning
out of BeatmapInfo
2024-06-12 13:28:41 +02:00
Bartłomiej Dach
1ab86ebd24
Move WidescreenStoryboard
out of BeatmapInfo
2024-06-12 13:23:53 +02:00
Bartłomiej Dach
a6b7600bf2
Move LetterboxInBreaks
out of BeatmapInfo
2024-06-12 13:18:44 +02:00
Bartłomiej Dach
011c2e3651
Move SpecialStyle
out of BeatmapInfo
2024-06-12 13:12:30 +02:00
Bartłomiej Dach
0a4560a03e
Move StackLeniency
out of BeatmapInfo
2024-06-12 13:04:33 +02:00
Bartłomiej Dach
4339e2dc4a
Move AudioLeadIn
out of BeatmapInfo
2024-06-12 13:04:28 +02:00
Bartłomiej Dach
694cfd0e25
Expose singular coarse-grained change event on ControlPointInfo
2024-06-11 09:16:45 +02:00
Bartłomiej Dach
b8e0704554
Implement singular change events for ControlPoint
2024-06-11 09:15:45 +02:00
Dean Herbert
dd3f4bcdab
Fix code quality and null handling
2024-06-07 00:01:50 +08:00
Xesquim
860afb8123
Creating method in ModUtils to calculate the rate for the song
2024-06-06 10:06:07 -03:00
Dean Herbert
aad0982e26
Adjust size of play button / progress to match BeatmapCardThumbnail
usage
2024-05-27 20:33:24 +09:00
Dean Herbert
75d961e6f2
Pass the same thing in twice for better maybe
2024-05-27 20:30:01 +09:00
Dean Herbert
b6471f0b9c
Allow previewing audio of playlist items
2024-05-27 17:09:37 +09:00
Dean Herbert
f85a1339d9
Unload daily challenge background less aggressively
2024-05-23 14:23:02 +08:00
Dean Herbert
6c37560842
Merge branch 'master' into daily-challenge-mvp
2024-05-23 10:57:05 +08: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
a4f8ed2a0e
Add button to access daily challenge playlist from main menu
2024-05-17 11:15:52 +02:00
Dean Herbert
91c684151a
Update bundled beatmaps
2024-05-07 14:18:50 +08:00
Bartłomiej Dach
cf22fc143f
Merge pull request #27539 from frenzibyte/storyboard-loops-v2
...
Refactor storyboard commands structure and add framework-based transform loop support
2024-05-06 08:39:07 +02:00
Dean Herbert
6cec4f0c8f
Merge pull request #28067 from bdach/refresh-local-cache-more-often
...
Update local metadata lookup cache more often
2024-05-03 20:44:13 +08:00