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

2069 Commits

Author SHA1 Message Date
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
Salman Ahmed
d2df09432f Center the star rating display text rather than left 2021-08-18 11:49:33 +03:00
Salman Ahmed
5e91ec73e3 Handle star rating range display sizing 2021-08-18 11:36:27 +03:00
Dean Herbert
9d2664cbb1 Merge branch 'master' into star-rating-display-v2 2021-08-18 17:22:33 +09:00
Salman Ahmed
74d6c26520 Refactor star rating display layout with flexibility in mind 2021-08-18 11:03:35 +03:00
Salman Ahmed
32ba525555 Track changes to mod settings in beatmap difficulty cache with 100ms debouncing 2021-08-17 05:46:05 +03:00
Salman Ahmed
0291cd5ae2 Consider mod equality in difficulty cache lookup rather than acronym 2021-08-17 04:27:43 +03:00
Bartłomiej Dach
e744629a41
Fix broken obsoletion message 2021-08-16 01:01:56 +02:00
Bartłomiej Dach
6108451449
Retrieve separated skin instance from working beatmap for editing 2021-08-15 21:18:09 +02:00
Bartłomiej Dach
7c88a1c6de
Add a way to change custom combo colours via IHasComboColours
`IHasComboColours` was already mutable (via a strange
`AddComboColours()` method) and exposing a straight list is easier to
work with. `IHasCustomColours` is also similarly externally mutable (in
a way which is not easily removable).
2021-08-15 20:06:06 +02:00
Salman Ahmed
b01893d3f2
Merge branch 'master' into star-rating-display-v2 2021-08-06 13:51:34 +03:00
Dean Herbert
7d670c6d35 Fix gap in fill colour 2021-08-06 18:05:24 +09:00
Salman Ahmed
b63d472594 Adjust font size to match designs
Looks silly when using `12f`, I've added a todo comment so that this specific case does not get forgotten when CSS-compatible font sizing gets supported.

The todo comment may not be 100% required but very unsure about silently changing it and forgetting about it.
2021-08-04 18:19:37 +03:00
Salman Ahmed
b2332eb5b3 Use new difficulty colours permanently 2021-08-04 18:19:37 +03:00
Salman Ahmed
284fa49646 Bring margins of components closer to existing designs 2021-08-04 18:19:28 +03:00
Salman Ahmed
42370e48ec Disable shadow on star display text 2021-08-04 18:19:28 +03:00
Salman Ahmed
d4399f10f9 Merge both variants of the star rating display 2021-08-04 18:19:28 +03:00
Salman Ahmed
14da5ab813 Remove defined size from the star rating display 2021-08-04 17:12:20 +03:00
Salman Ahmed
95b134f3d8 Use OsuColour.Orange1 instead of pure yellow 2021-08-04 17:12:20 +03:00
Salman Ahmed
19d54ee751 Update light background handling to Color4.Yellow instead
Confirmed to be the way forward in
https://github.com/ppy/osu-web/pull/7855#issuecomment-880959644.
2021-08-04 17:12:20 +03:00
Salman Ahmed
a01402664f Add redesigned star rating display
Matching the same design as the one in the latest figma designs.
2021-08-04 17:12:20 +03:00
Salman Ahmed
9a5e052dc0 Use star difficulty colour spectrum game-wide 2021-08-03 15:02:18 +03:00
Salman Ahmed
3409bc6b27 Update mapper usages with LocalisableDescription 2021-07-31 01:47:14 +03:00
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Lucas A
ea4f9b2ac7 Localise beatmap online status pill. 2021-07-21 13:15:07 +02:00
Dean Herbert
399c3b0be8 Rename property, reword xmldoc and improve readability of update code 2021-07-21 17:32:56 +09:00
Salman Ahmed
9d92b795fa Revert making ComboOffsets legacy and define BeatmapSkinComboIndex instead 2021-07-20 14:15:43 +03:00
Salman Ahmed
554652b033 Merge branch 'refactor-combo-colour-retrieval' into legacy-beatmap-combo-offset 2021-07-20 10:11:52 +03:00
Dan Balasescu
f3bcaf7f11
Merge pull request #13929 from peppy/i-deep-cloneable
Create a deep clone of score for score submission purposes
2021-07-19 21:58:27 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
ekrctb
7f432665e5 Preserve Y position of hit objects in osu!catch 2021-07-14 14:38:38 +09:00
Dan Balasescu
6b76c54aee
Merge pull request #13756 from PercyDan54/playlist-empty-romanised
Fix playlist item displays empty string if no unicode title is present
2021-07-05 13:53:50 +09:00
PercyDan54
12371f7424
Fix playlist item displays as empty string if no unicode title is present 2021-07-04 08:09:38 +08:00
Dean Herbert
0be75cc4ed Fix incorrect base call causing import optimisation to not work 2021-07-03 22:35:46 +09:00
Dan Balasescu
697b07acb1
Merge branch 'master' into fix-beatmap-import-fk-failure 2021-06-29 11:36:31 +09:00
Dan Balasescu
92fcf90768
Merge branch 'master' into import-early-checksum-abort 2021-06-28 19:29:08 +09:00
Dean Herbert
90b87cbb9e Add back unidirectional online id check 2021-06-28 10:11:27 +09:00
Dean Herbert
9a96cd4a1d Revert "Remove comparison of online beatmap IDs during dedupe checks"
This reverts commit 15af28d2a0.
2021-06-28 09:54:18 +09:00
Dean Herbert
15af28d2a0 Remove comparison of online beatmap IDs during dedupe checks 2021-06-27 14:48:57 +09:00
Dean Herbert
46f8100f43 Remove overly verbose logging during beatmap imports 2021-06-27 14:29:02 +09:00
Dean Herbert
dcba7bf779 Fix import flow potentially hitting foreign key constraint 2021-06-23 17:34:56 +09:00
ekrctb
e1b2c63e09 Add IApplicableToBeatmapProcessor mod interface 2021-06-23 14:46:30 +09:00
Dean Herbert
5944c45f55 Specify types explicitly and don't handle non-nullable values with fallbacks 2021-06-16 16:24:30 +09:00
smoogipoo
6be41e497a Fix possible nullref in difficulty recommender 2021-06-16 11:27:38 +09:00
Bartłomiej Dach
375f64ffd1 Check empty string more explicitly in IsRomanised()
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-06-11 06:38:53 +02:00
Bartłomiej Dach
e41a5a0fcd Add romanised author & title fields 2021-06-10 22:17:45 +02:00
Dean Herbert
00b3eea840 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-05-31 21:39:04 +09:00
Dean Herbert
17fa2426d4 Merge branch 'master' into legacy-skin-resource-improvements 2021-05-31 19:36:09 +09:00
Dean Herbert
b16d10bd95 Provide game-wide resources via IStorageResourceProvider 2021-05-31 18:57:47 +09:00
Dean Herbert
675fe37446 Change check order around to ensure re-fetches which return no results don't nullref 2021-05-31 18:35:18 +09:00
Dean Herbert
de0e51a81d Merge branch 'master' into fix-skin-sample-lookup 2021-05-31 15:27:39 +09:00
Dean Herbert
06bd696cc2 Remove previous consumption logic in GetWorkingBeatmap
This should not be required since the introduction of `workingCache`,
which does the same thing in a more global way.
2021-05-31 14:11:58 +09:00
Bartłomiej Dach
ab077c6656
Merge branch 'master' into non-nullable-beatmapset-files 2021-05-31 00:10:03 +02:00
Bartłomiej Dach
78213e09d4
Merge branch 'master' into editor-exit-stability 2021-05-30 23:03:50 +02:00
Dean Herbert
dac1a98d8a Merge branch 'master' into fix-skin-sample-lookup 2021-05-30 15:19:47 +09:00
Dean Herbert
8652ac05db Merge branch 'editor-exit-stability' into non-nullable-beatmapset-files 2021-05-28 18:58:35 +09:00
Dean Herbert
ee5eb9576f Fix completely wrong conditional logic 2021-05-28 18:38:50 +09:00
Dean Herbert
581a86b91a Revert "Revert "Fix editor tests failing due to empty files being specified""
This reverts commit 1af684c4b2.
2021-05-28 14:33:06 +09:00
Dean Herbert
41733af0ed Revert "Revert "Make BeatmapSetInfo.Files non-nullable""
This reverts commit 9c4f39e968.
2021-05-28 14:33:05 +09:00
Dean Herbert
b349ff8693 Revert "Add temporary accounting for tests with null files"
This reverts commit e52c0a34f8.
2021-05-28 14:33:04 +09:00
Dean Herbert
f1b5aced6f Merge branch 'master' into editor-exit-stability 2021-05-28 14:32:32 +09:00
Dean Herbert
e52c0a34f8 Add temporary accounting for tests with null files 2021-05-28 14:31:26 +09:00
Dean Herbert
9c4f39e968 Revert "Make BeatmapSetInfo.Files non-nullable"
This reverts commit c24712642c.
2021-05-28 14:15:28 +09:00
Dean Herbert
1af684c4b2 Revert "Fix editor tests failing due to empty files being specified"
This reverts commit fdbd421040.
2021-05-28 14:15:28 +09:00
Dean Herbert
b13b732e02 Remove incorrect DefaultSkin usage 2021-05-27 14:50:56 +09:00
Dean Herbert
14a4095140 Merge branch 'master' into beatmap-skin 2021-05-26 18:39:47 +09:00
Dean Herbert
29e1737f0d
Merge branch 'master' into mbd-beatmap-set-cover 2021-05-24 15:51:03 +09:00
Salman Ahmed
4f6de6fdc6 Implement GetSkin() for other working beatmaps 2021-05-21 20:21:29 +03:00
Salman Ahmed
318e5fc60b Mark WorkingBeatmap.GetSkin() as abstract 2021-05-21 20:14:26 +03:00
Dean Herbert
c24712642c Make BeatmapSetInfo.Files non-nullable 2021-05-20 17:39:52 +09:00
Dean Herbert
fdbd421040 Fix editor tests failing due to empty files being specified 2021-05-20 17:09:55 +09:00
Dean Herbert
7980bdd384 Revert incorrectly changed requery code 2021-05-20 15:41:58 +09:00
Salman Ahmed
825d61e22c Separate default beatmap skins from DefaultSkin 2021-05-19 12:06:10 +03:00
Dean Herbert
a639132825 Avoid doing any re-fetch on beatmap from test scenes 2021-05-19 17:58:28 +09:00
Dan Balasescu
ce7c503e6e
Merge branch 'master' into playlist-unicode 2021-05-17 11:47:10 +09:00
Dean Herbert
dc56250a3c
Merge branch 'master' into player-loader-star-rating 2021-05-15 15:39:57 +09:00
Salman Ahmed
e0728a6e19 Make BeatmapDifficultyCache.GetDifficultyAsync virtual 2021-05-14 15:52:36 +03:00
Dean Herbert
32ff406289 Add database tracking of beatmap creator user_ids 2021-05-14 15:40:29 +09:00
Dean Herbert
77e422409c Add SkinInfo.InstantiationInfo to allow creating different skin types 2021-05-11 23:37:06 +09:00
Salman Ahmed
c7325f0f77 Add missing load delay
That was a bad one... `ModelBackedDrawable` has a default of 0ms load delay, while previously the wrapper created for beatmap set cover used default 500ms, this change is bringing the load delay back, to avoid firing hundreds of web requests just when doing a quick long scroll on beatmap listing.
2021-05-07 08:09:02 +03:00
Salman Ahmed
283488ea53 Use TransformImmediately instead at beatmap listing search control
Applies two changes:
 - Use `TransformImmediately` which achieves the same wanted transition behaviour without any issues.
 - Move the transition behaviour override into `BeatmapListingSearchControl` in a nested subclass of `UpdateableBeatmapSetCover`.
2021-05-07 03:36:32 +03:00
Salman Ahmed
6fb9eb8b33 Move legacy beatmap combo offset to osu! processor
Better suited there, I intiailly wanted the whole legacy interface to reside in `osu.Game.Rulesets.Osu` but it's required in `ConvertHitObjectParser` and that's in the main game project, so had to leave the interface as-is for now.
2021-05-05 14:24:14 +03:00
Salman Ahmed
cd6d070b4a Consider "combo offsets" as legacy logic and separate from combo information 2021-05-05 07:43:08 +03:00
Bartłomiej Dach
32b3ea70b9 Fix both covers showing if cover is not fully opaque 2021-05-04 21:12:50 +02:00
Bartłomiej Dach
f52375eed2 Merge branch 'master' into mbd-beatmap-set-cover 2021-05-03 15:58:13 +02:00
Dean Herbert
2e24b69d62
Merge pull request #12617 from Joehuu/fix-pp-column-approved-maps
Fix approved maps not displaying pp column on score table
2021-05-02 13:27:39 +09:00
Justus Franklin Tumacder
0d077b7a5d Fix GetClosestBeatDivisor returning the wrong divisor 2021-05-01 14:13:42 +08:00
Joseph Madamba
786ab163f6 Rename extension and move to bottom of file 2021-04-30 12:40:16 -07:00
Dean Herbert
eeb66a955e
Merge branch 'master' into mbd-beatmap-set-cover 2021-04-30 08:14:33 +09:00
Joseph Madamba
cfbf95b433 Add HasPerformancePoints extension method 2021-04-29 14:11:35 -07:00
Dean Herbert
859898d98f Refactor lookup methods to avoid linq and reduce TimingPointAt calls 2021-04-28 17:16:05 +09:00
Dean Herbert
c5186b6a69 Revert return values to non-rounded doubles 2021-04-28 16:59:49 +09:00