Commit Graph

2921 Commits

Author SHA1 Message Date
f930c4bd0a Move struct to bottom of file 2023-05-03 13:33:31 +09:00
48fd99818e Split out default and sample application 2023-05-03 13:30:45 +09:00
cca15f930c Refactor applyLegacyInfoAndDefaults for legibility 2023-05-03 13:26:50 +09:00
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
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
436ebdcfcb Fix beatmap leaderboard test failure
Because the online info reset (which includes online ID reset) was
happening after encoding,
`TestSceneBeatmapLeaderboard.TestLocalScoresDisplayOnBeatmapEdit()`
started failing, as the hash no longer matched expectations after the
first save of the map.
2023-05-01 19:44:15 +02:00
f470b2c9cc Always reset online info when saving local beatmap 2023-05-01 18:17:45 +02:00
8c21fddb5e remove all redundancies from encoded control points 2023-05-01 16:53:38 +02:00
8302bb1f37 dont encode custom sample bank for objects without legacy samples 2023-05-01 14:56:29 +02:00
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
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
139a1d7e6d fix legacy encoder writing sample info while not writing node samples 2023-04-30 17:46:47 +02:00
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
1b4f4372d5 fixed sample control point applying 2023-04-26 14:32:12 +02:00
5accb05f45 fix invalidoperation exception 2023-04-26 14:28:48 +02:00
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
c37875bee8 remove hitobject SampleControlPoint usage from LegacyBeatmapEncoder 2023-04-25 16:00:40 +02:00
bf1951fc38 Fix incorrect xmldoc 2023-04-25 12:54:45 +02:00
891b87a5ff remove ApplyLegacyInfo method 2023-04-25 12:52:21 +02:00
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
6c9a90d1ec Merge branch 'master' into master 2023-04-22 19:23:52 +02:00
e90660c1a4 Switched to lowercase 2023-04-21 02:35:28 +02:00
b62de5514c Fixed video importing bug #23259 2023-04-21 02:10:24 +02:00
1066dfcbf6 Change default beat divisor to 4
This matches stable, and is a much saner default value.

Will apply to new beatmaps and also beatmaps which don't specify a snap
value in the `.osu` file.
2023-04-20 14:35:13 +09:00
e72f103c17 Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
da947d8661 Gracefully handle beatmaps specifying images using the video storyboard type 2023-03-13 18:24:16 +09:00
72695f7c90 Merge branch 'master' into omit-barline-in-timing-control-point 2023-03-07 22:46:24 +01:00
1fcf41379d Added maintainability patch by bdach 2023-03-06 16:20:36 +01:00
b0cd801405 fix code quality 2023-03-04 19:34:22 +01:00
5146f7c978 using array again in GetSearchableTerms 2023-03-04 16:49:46 +01:00
b90c389ff0 using List instead of Span in GetSearchableTerms 2023-03-04 15:42:35 +01:00
91d206e8d2 Optimised GetSearchableTerms
Reduced memory allocations to 1
2023-03-03 19:21:50 +01:00
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
7cc4fd4efc Use the exact method stable uses for generating storyboard filenames 2023-01-26 15:09:36 +09:00
d15f8c2f3a Fix beatmaps with multiple osb files potentially reading the storyboard from the wrong one
In stable, the storyboard filename is fixed. In lazer, we were always
looking for the first `.osb` in the database. In the case a beatmap
archive housed more than one `.osb` files, this may load the incorrect
one.

Using `GetDisplayString` here feels like it could potentially go wrong
in the future, so I'm open to hard-coding this locally (or using string
manipulation to remove the ` [creator_name]` portion of the beatmap's
filename). Open to opinions on that.

Fixes storyboard playback in https://osu.ppy.sh/beatmapsets/1913687#osu/3947758
2023-01-25 17:11:15 +09:00
392ff2ffea Reword comment regarding hash transfer to make more sense 2023-01-25 14:11:02 +09:00
741ca96853 Make transferCollections argument to private method explicitly required 2023-01-25 14:09:13 +09:00
739ec8d81d Add argument hint for nondescript bool
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-01-25 14:04:30 +09:00
e6de167adb Revert split and make collections boolean internal to BeatmapManager 2023-01-24 07:27:26 +09:00
1c1c9915bb Split saving new and existing beatmaps into separate flows 2023-01-22 10:27:33 +09:00
a1b5c9d910 Don't transfer MD5 hashes in collections when copying beatmaps
Fixes #22306.

Changes beatmap saving so that by default it does not transfer
the hashes in collections, and only transfers them when saving the same
difficulty in the editor.

Issue seems to have been introduced in https://github.com/ppy/osu/pull/20641.
2023-01-22 01:14:18 +09:00
a1152fa0db Merge pull request #22147 from Feodor0090/forbid-negative-snap
Forbid negative time snap in editor
2023-01-17 17:35:45 +09:00
a9facc076f Fix difficulty creation flow failing for some ruleset combinations
In current `master`, the difficulty creation flow would retrieve a
"reference beatmap" to copy metadata and timing points from using
`GetPlayableBeatmap()`. But, importantly, it was calling that method
using *the ruleset of the new difficulty* rather than the ruleset of the
existing one. This would make the difficulty creation flow fail if the
beatmap couldn't be converted between rulesets (like taiko to catch).

Fixing to use the reference beatmap's actual ruleset would be trivial,
but there's no real reason to do all of that work anyway when a
`WorkingBeatmap` is available. Because getting a playable beatmap is not
required to copy across metadata and timing points, remove the
`GetPlayableBeatmap()` step entirely to fix the bug.

Closes #22145.
2023-01-14 19:46:55 +01:00
51e21ee6f0 Make snapped time always positive 2023-01-12 03:38:57 +03:00
5ee0665eac Merge branch 'master' into pause-imports-during-gameplay 2023-01-09 20:09:17 +03:00
811a562608 Don't use bindables to avoid potential cross-usage contamination 2023-01-10 01:10:20 +09:00
07dae7dc21 Merge branch 'master' into overlay-panels-context-menu 2023-01-09 19:04:56 +09:00
62ffb4fe78 Pause imports during active gameplay 2023-01-09 18:54:11 +09:00
0f6735564e Move and rename nomination response model to singular 2023-01-07 10:54:48 -08:00