Commit Graph

38362 Commits

Author SHA1 Message Date
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
d98aa60efc Merge branch 'master' into cursor-ripples 2023-05-01 09:37:50 +02:00
2a94757154 Make sure the first object you place has bank and volume 2023-05-01 00:49:01 +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
7cedbca9be Merge branch 'master' into multiplier-doesnt-update-with-preset-mod 2023-04-30 17:36:00 +02:00
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
fb4b681cc5 Use Queue instead of Stack 2023-04-30 16:36:01 +02:00
8f02bd80f9 Addressed changes 2023-04-30 16:11:52 +02:00
949dc1c0f9 Improved logic 2023-04-30 12:05:55 +02:00
b39a9d816e Add basic structural requirements for cursor ripples 2023-04-30 14:48:03 +09:00
8ec2154965 Fixed ApplyStateChange to happen in correct order 2023-04-30 02:01:18 +02:00
83111223e0 fix null sample 2023-04-30 01:08:52 +02:00
92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
ffcc8e91b2 fix legacy parser incorrectly assigning sample info for sliders 2023-04-29 23:51:49 +02:00
17e4b75dfd Save first state when editing 2023-04-29 20:54:19 +02:00
3b0ba4b38b Improved logic for ApplyStateChange for skin editor 2023-04-29 19:52:22 +02:00
646d4965b9 Merge branch 'master' into fix-exclusive-fullscreen-detection 2023-04-29 14:39:34 +02:00
119687cf6e Merge pull request #23329 from rltn/clickable-country-name-in-profile
Clickable country name in profile
2023-04-29 14:19:13 +09:00
607a04ae73 Fix the issue 2023-04-29 10:29:33 +09:00
2d6c0d2900 use of Child instead of Children 2023-04-28 19:24:07 +03:00
f7c84030ac remove bank default value 2023-04-28 17:22:34 +02:00
6929be49b7 Change condition for exclusive fullscreen notice to only show when using the correct renderer
This avoids the notice showing when running on windows, but using the
newer renderers (where the underlying logic hasn't been tested properly
and can result in false-positives).

Supersedes https://github.com/ppy/osu-framework/pull/5759 as a more
correct implementation.
2023-04-28 22:36:30 +09:00
4b0ee392f6 add OsuHoverContainer 2023-04-28 05:48:54 +03:00
17730f05bc remove UpdateableCountryText 2023-04-28 05:47:05 +03:00
4d144cd5b5 clearing the code 2023-04-28 02:06:13 +03:00
092377fdaa moving UpdateableCountryText 2023-04-28 01:47:14 +03:00
e9843f2066 replace country text object 2023-04-28 01:16:50 +03:00
b13201fb79 UpdateableCountryText rewrite 2023-04-28 01:14:42 +03:00
f5c652325a Create UpdateableCountryText.cs 2023-04-27 23:44:18 +03:00
07efa7d660 Merge branch 'master' into fix-storyboard-loop-end-time 2023-04-26 21:53:26 +02:00
354cd23874 removed all usage of hitobject's DifficultyControlPoint 2023-04-26 18:17:02 +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
c6fc180659 remove all test usages of SampleControlPoint 2023-04-26 14:21:52 +02:00
87ca0f5335 Update SamplePointPiece.cs 2023-04-26 13:45:58 +02:00
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
e27c4dfa10 Invoke ApplyDefaultsToSelf 2023-04-26 11:46:05 +02:00
332c199dc2 further simplification 2023-04-26 10:46:29 +02:00
61b62b35f5 Merge pull request #18626 from ggliv/decouple-mod-fails
Allow ModFailCondition to arbitrarily trigger failures
2023-04-26 16:19:42 +09:00
27f81288ef Merge branch 'master' into keep-shared-settings-ruleset-change 2023-04-26 15:51:31 +09:00
cb7b246e33 Fix naming and update in line with nullability 2023-04-26 15:27:58 +09:00
210c5e7c53 Merge branch 'master' into decouple-mod-fails 2023-04-26 15:26:20 +09:00
6a3b587374 Merge pull request #23260 from Haspamelodica/master
Fix some videos with uppercase file extensions not displaying correctly in-game
2023-04-26 14:29:25 +09:00
1efc78c0f8 Actually use new end time property when setting lifetimes 2023-04-26 13:28:51 +09:00
8e297dc60a Added safety measures for invalid mod combinations 2023-04-25 21:28:03 +02:00
5ec8ecb11b Merge pull request #23309 from peppy/key-counters-fix
Fix key counters counting during break time
2023-04-25 21:15:12 +02:00
0841e73a39 Improved readability and sounds 2023-04-25 21:07:17 +02:00
e4b64bdc3e clean up code stuff 2023-04-25 19:06:29 +02:00