1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 08:22:56 +08:00
Commit Graph

2060 Commits

Author SHA1 Message Date
Dean Herbert
693ecdf62a Refactor some incorrect/outdated terminology 2021-09-06 21:32:43 +09:00
Dean Herbert
3c7a34bdbd Move mania-specific conversion to converter 2021-09-06 21:06:13 +09:00
Dean Herbert
766d789845 Rename ApproachRate to ScrollSpeed for now (to reduce complexity/confusion) 2021-09-06 21:06:13 +09:00
Dean Herbert
0e6660da30 Replace todo with permanent comment 2021-09-03 17:11:12 +09:00
Dean Herbert
8f24ea54ee Change SamplePoints to be SortedList for conformity 2021-09-03 17:11:12 +09:00
Dean Herbert
2b9157987e Fix regression in SampleControlPoint add logic 2021-09-03 17:11:12 +09:00
Dean Herbert
d587dc6203 Populate new approach rate where required 2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
4eb09ea1a9 Update decoder to also extract DifficultyControlPoints from HitObjects 2021-09-03 16:58:16 +09:00
Dean Herbert
db3fc1d4af Move DifficultyControlPoints list to LegacyControlPointInfo 2021-09-03 16:58:16 +09:00
Dan Balasescu
6c649b7bbe
Merge branch 'master' into no-more-sample-control-points-info 2021-09-02 18:09:05 +09:00
Dean Herbert
f0b128b6ec
Merge pull request #14592 from frenzibyte/cleanup-tooltips
Update remaining tooltip implementations to use generics
2021-09-01 17:03:59 +09:00
Dean Herbert
edf29e405b
Merge pull request #14581 from bdach/setup-screen-countdown-settings
Add countdown settings to setup screen
2021-09-01 15:35:46 +09:00
Dan Balasescu
e715b21ca7
Merge pull request #14586 from peppy/remove-ijsonserializable
Remove IJsonSerializable interface
2021-09-01 14:17:32 +09:00
Bartłomiej Dach
1e4fa87648
Merge branch 'master' into setup-screen-countdown-settings 2021-08-31 22:43:18 +02:00
Salman Ahmed
505824d8ea Constrain difficulty icon tooltip to internal accessibility"
This reverts the reverted commit cd356b8eae.

Sorry for the revert-unrevert, rushly pushed without realizing it
doesn't even build.
2021-08-31 21:16:17 +03:00
Salman Ahmed
cd356b8eae Revert "Constrain difficulty icon tooltip to internal accessibility"
This reverts commit 4a590a041c.
2021-08-31 20:57:47 +03:00
Salman Ahmed
4a590a041c Constrain difficulty icon tooltip to internal accessibility 2021-08-31 20:57:36 +03:00
Salman Ahmed
da7ff4b160 Update remaining tooltip implementations to use generics 2021-08-31 20:01:13 +03:00
Dean Herbert
a254624373 Avoid performing beatmap metadata lookups when entering the editor
If none of the lookup parameters are available, skip the lookup
completely.
2021-08-31 17:18:05 +09:00
Dean Herbert
d988aa1680 Actually serialise SampleControlPoints along with HitObjects 2021-08-31 15:14:03 +09:00
Dean Herbert
448c58c35d
Remove unnecessary variable discard
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-08-31 15:08:07 +09:00
Dean Herbert
9fa8bee094 Remove outdated TODO 2021-08-31 14:51:19 +09:00
Dean Herbert
ce0d7cce2d Merge branch 'remove-ijsonserializable' into no-more-sample-control-points-info 2021-08-31 14:40:54 +09:00
Dean Herbert
c25ab6835c Remove IJsonSerializable interface
Was pretty pointless and made it hard to use the custom serialisation
terms arbitrarily in tests.
2021-08-31 14:39:20 +09:00
Bartłomiej Dach
b43ee2d61c
Add descriptions to enum members 2021-08-30 22:51:42 +02:00
Dean Herbert
a2cff75fc0 Fix editor not cloning control points as expected 2021-08-30 21:55:08 +09:00
Dan Balasescu
b95da3ca27
Merge pull request #14576 from peppy/update-framework
Update framework
2021-08-30 21:09:58 +09:00
Dean Herbert
1aaea7011a Fix early return causing event loss in case of multiple control points in group 2021-08-30 18:33:05 +09:00
Dean Herbert
015df282fe Simplify copy operations 2021-08-30 18:32:55 +09:00
Dean Herbert
d35c4da906 Add new control point to legacy regeneration logic 2021-08-30 17:14:53 +09:00
Dean Herbert
6ee4a6526c Don't block sample points from still being added to ControlPointInfo 2021-08-30 17:14:53 +09:00
Dean Herbert
6fd24a5d92 Remove redundant null coalesce 2021-08-30 17:14:53 +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
da7a871afa
Update inline comment to point to new variable location
Co-authored-by: PercyDan <50285552+PercyDan54@users.noreply.github.com>
2021-08-30 16:27:24 +09:00
Dean Herbert
fa2bf42188 Update tooltip implementations 2021-08-30 16:05:00 +09:00
Dean Herbert
6a6dac609c Fix instability of taiko double conversion
Until now, the taiko speed multiplier was potentially applied more than
once if conversion was run multiple times.
2021-08-30 15:30:18 +09:00
Dean Herbert
ee49305cad Move taiko legacy speed multiplier to osu.Game project
Allows it to be used in local case in `LegacyBeatmapEncoder`.
2021-08-30 15:13:31 +09:00
Salman Ahmed
e374ef163d Update localisable formattable extensions usages inline with framework change 2021-08-29 15:00:28 +03:00
Dean Herbert
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
Dean Herbert
414457ba57 Add basic xmldoc explaining CountdownOffset 2021-08-25 13:24:52 +09:00
Bartłomiej Dach
a6c2cbd2e5
Add countdown settings to beatmap info model 2021-08-24 21:55:10 +02:00
Dan Balasescu
dfd61e413a
Merge branch 'master' into difficulty-cache-difficulty-adjust 2021-08-24 12:08:52 +09:00
Dean Herbert
d17f7b5c8b Side WidescreenStoryboard to on by default for new beatmaps 2021-08-23 17:40:41 +09:00
Bartłomiej Dach
d602dc9d90
Enable epilepsy warning setting persistence in encoder 2021-08-22 17:43:20 +02:00
Bartłomiej Dach
995338029c
Fix difficulty cache lookups sharing underlying mod instances
`DifficultyCacheLookup`s were storing raw `Mod` instances into their
`OrderedMods` field. This could cause the cache lookups to wrongly
succeed in cases of mods with settings. The particular case that
triggered this fix was Difficulty Adjust.

Because the difficulty cache is backed by a dictionary, there are two
stages to the lookup; first `GetHashCode()` is used to find the
appropriate hash bucket to look in, and then items from that hash bucket
are compared against the key being searched for via the implementation
of `Equals()`.

As it turns out, the first hashing step ended up being the saving grace
in most cases, as the hash computation included the values of the mod
settings. But the Difficulty Adjust failure case was triggered by the
quirk that `GetHashCode(0) == GetHashCode(null) == 0`.

In such a case, the `Equals()` fallback was used. But as it turns out,
because the `Mod` instance stored to lookups was not cloned and
therefore potentially externally mutable, it could be polluted after
being stored to the dictionary, and therefore breaking the equality
check. Even though all of the setting values were compared, the hash
bucket didn't match the actual contents of the lookup anymore (because
they were mutated externally, e.g. by the user changing the mod setting
values in the mod settings overlay).

To resolve, clone out the mod structure before creating all difficulty
lookups.
2021-08-21 15:50:33 +02:00
Dean Herbert
77149044a5 Allow intro screen to retrieve beatmap even if rulesets is not loaded 2021-08-20 19:43:48 +09:00
Salman Ahmed
6d57a240ac Add animation support for the star rating display 2021-08-19 07:17:43 +03:00
Salman Ahmed
102320f8ae Merge branch 'master' into mod-settings-difficulty-cache 2021-08-19 06:35:13 +03:00