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

60163 Commits

Author SHA1 Message Date
Dean Herbert
1a04be15c7 Fix fade in delay for first slider end circle being incorrect when snaking disabled 2023-05-02 16:27:17 +09:00
Dean Herbert
e3c51b9652 Add ability to toggle snaking in slider test scene 2023-05-02 16:26:56 +09:00
Dean Herbert
bd72c67d68 Increase the rate of slider ball fade on argon skins to match other implementations 2023-05-02 15:47:35 +09:00
OliBomby
2e018c8b06
Fix comment 2 osu.Game/Rulesets/Objects/Types/IHasGenerateTicks.cs
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-05-02 08:41:47 +02:00
OliBomby
c2ad8c2320
Fix comment 1 osu.Game/Rulesets/Objects/Types/IHasGenerateTicks.cs
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-05-02 08:41:30 +02:00
Dean Herbert
67f83f246b Add more padding around playfield in editor to avoid overlap with tool areas
Closes #23130.
2023-05-02 15:37:02 +09:00
Dean Herbert
4a97c2c105
Merge pull request #23038 from cdwcgt/scale-background-dim
Add feature to adjust `ScalingContainer` background dim
2023-05-02 15:36:52 +09:00
Dean Herbert
ce4a6c38a0
Merge pull request #22950 from Joehuu/fix-initial-playlist-highlight
Fix now playing playlist not highlighting selected item on initial open
2023-05-02 15:36:34 +09:00
Dean Herbert
8a536c1cdb Fix non-block namespace usage 2023-05-02 15:09:24 +09:00
Dean Herbert
1e4a628cb1
Merge pull request #23284 from Hy0tic/multiplier-doesnt-update-with-preset-mod
Fix issue where multiplier show wrong value when adjusting speed on preset
2023-05-02 14:59:41 +09:00
Dean Herbert
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
Dean Herbert
57f48e0703 Start colour black to ensure initial appear transition doesn't look silly 2023-05-02 14:33:57 +09:00
Dean Herbert
ab4f66fad3 Minor readability refactors 2023-05-02 14:31:39 +09:00
Dean Herbert
7a840e1d82 Remove unnecessary TransferValue spec 2023-05-02 14:29:26 +09:00
Dean Herbert
7efaa299bd Merge branch 'master' into scale-background-dim 2023-05-02 14:24:54 +09:00
Dean Herbert
736be6a73b Refactor slightly for readability 2023-05-02 14:11:16 +09:00
Dean Herbert
ad40099e32 Ensure negative sign is only applied when the post-rounded result is negative 2023-05-02 14:00:52 +09:00
Dean Herbert
37a5dde859 Fix BeatmapAttributeText not supporting unicode artist/title 2023-05-02 13:47:49 +09:00
Dean Herbert
e808e7316b Mark delegate value unused and add comment to avoid future regression 2023-05-02 13:29:30 +09:00
Dean Herbert
63890ef6fe Fix audio offset tooltip potentially showing "-0 ms"
Closes https://github.com/ppy/osu/issues/23339.
2023-05-02 13:24:22 +09:00
Dean Herbert
983a8f7dfe
Merge branch 'master' into fix-reverse-crash 2023-05-02 13:14:34 +09:00
Dean Herbert
87db891143 Adjust test to reliabily fail 2023-05-02 13:12:11 +09:00
Dean Herbert
5da78098ad
Merge pull request #23362 from bdach/fix-saving-online-beatmap-not-resetting-id
Reset online ID on locally modifying beatmap
2023-05-02 12:41:23 +09:00
Dean Herbert
0b048979f4
Merge pull request #23361 from OliBomby/distance-snap
Enable 'Use current' distance snap when exactly on a hit object
2023-05-02 12:21:57 +09:00
Bartłomiej Dach
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
OliBomby
cf5211aec9 Enable current distance snap when exactly on a hit object 2023-05-01 19:22:52 +02:00
Bartłomiej Dach
1fb4c814f4
Remove no longer needed API call mocking
The online ID will be reset unconditionally after any local change is
made to any beatmap. That behaviour no longer depends on online lookups
succeeding or failing.

This may change at a later date when beatmap submission is integrated
into lazer - the idea is that online IDs would get re-populated on local
beatmaps once they are submitted to web.
2023-05-01 19:08:41 +02:00
Bartłomiej Dach
f470b2c9cc
Always reset online info when saving local beatmap 2023-05-01 18:17:45 +02:00
Bartłomiej Dach
8ab3a87b13
Add failing test case covering online ID reset on save
This test scene passes at e58e1151f3 and
fails at current master, due to an inadvertent regression caused by
e72f103c17.

As it turns out, the online lookup flow that was causing UI thread
freezes when saving beatmaps in the editor, was also responsible for
resetting the online ID of locally-modified beatmaps if online lookup
failed.
2023-05-01 18:17:35 +02:00
OliBomby
8c21fddb5e remove all redundancies from encoded control points 2023-05-01 16:53:38 +02:00
OliBomby
dbb2a8980b add test 2023-05-01 15:56:23 +02:00
OliBomby
1dc34ee25d fix infinite repeat count when adjusting length of 0 length slider 2023-05-01 15:48:54 +02:00
OliBomby
8302bb1f37 dont encode custom sample bank for objects without legacy samples 2023-05-01 14:56:29 +02:00
OliBomby
27cfadca16 add sample info to Banana and SpinnerBonusTick 2023-05-01 14:54:06 +02:00
Terochi
4d52ce769b Revert SaveState() calling on initialization 2023-05-01 12:53:58 +02:00
OliBomby
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
Bartłomiej Dach
5c066c40b1
Merge pull request #23342 from peppy/cursor-ripples
Implement cursor ripples
2023-05-01 10:34:04 +02:00
Bartłomiej Dach
d98aa60efc
Merge branch 'master' into cursor-ripples 2023-05-01 09:37:50 +02:00
Bartłomiej Dach
ff29189e89
Add custom cursor-ripple to cover skinnability in test 2023-05-01 09:33:37 +02:00
Dean Herbert
0a70734331 Adjust ripple size with cursor scale (including CS) 2023-05-01 14:43:49 +09:00
Dean Herbert
5cbfefbcb4 Adjust metrics of default ripple to match stable default better 2023-05-01 13:29:50 +09:00
Dean Herbert
b8ae508639 Fix incorrect starting scale for ripples 2023-05-01 13:09:00 +09:00
OliBomby
2a94757154 Make sure the first object you place has bank and volume 2023-05-01 00:49:01 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
41d4894aa3 add min and max value to SliderVelocity 2023-04-30 19:32:24 +02:00
OliBomby
4a0ff046ae pass new hitobject properties through beatmap converters 2023-04-30 19:20:42 +02:00
OliBomby
139a1d7e6d fix legacy encoder writing sample info while not writing node samples 2023-04-30 17:46:47 +02:00
Bartłomiej Dach
7cedbca9be
Merge branch 'master' into multiplier-doesnt-update-with-preset-mod 2023-04-30 17:36:00 +02:00
Bartłomiej Dach
2e3daf0a54
Fix leak of ModSettingChangeTracker instances
The `SelectedMods.BindValueChanged()` callback in `ModSelectOverlay` can
in some instances run recursively. This is most heavily leaned on in
scenarios where `SelectedMods` is updated by an external component. In
such cases, the mod select overlay needs to replace the mod instances
received externally with mod instances which it owns, so that the changes
made on the overlay can propagate outwards.

This in particular means that prior to this commit, it was possible to
encounter the following scenario:

	modSettingChangeTracker?.Dispose();
	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

This leaks one `modSettingChangeTracker` instance from the inner call,
which is never disposed.

To avoid this, move the disposal to the same side of the recursion that
the creation happens on, changing the call pattern to:

	updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
	                               // therefore causing a recursive call

		modSettingChangeTracker?.Dispose();
		// inner call continues
		modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

	modSettingChangeTracker?.Dispose();
	// outer call continues
	modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);

which, while slightly wasteful, does not cause any leaks.

The solution is definitely suboptimal, but addressing this properly
would entail a major rewrite of the mod instance management in the mods
overlay, which is probably not the wisest move to make right now.
2023-04-30 17:31:41 +02:00
Bartłomiej Dach
d35355970f
Add test case covering failure scenario 2023-04-30 17:23:45 +02:00