osu/osu.Game/Beatmaps
Bartłomiej Dach 15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
..
ControlPoints Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Drawables Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Formats Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
Legacy
Timing
APIFailTimes.cs Rename BeatmapMetrics to APIFailTimes 2021-10-25 15:34:41 +09:00
Beatmap.cs Rename BeatmapInfo.Version to DifficultyName to match underlying interface 2021-11-11 17:20:53 +09:00
BeatmapConverter.cs Shallow clone BeatmapInfo during conversion process to avoid overwriting fields 2021-10-12 16:43:56 +09:00
BeatmapDifficulty.cs Fix taiko weird difficulty multiplier failing on double convert 2021-10-06 15:18:06 +09:00
BeatmapDifficultyCache.cs Change difficulty cache storage type to nullable 2021-11-20 17:00:50 +01:00
BeatmapInfo.cs Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
BeatmapInfoExtensions.cs Fix GetDisplayTitle() implementations relying on ToString() themselves 2021-11-09 13:53:08 +01:00
BeatmapManager.cs Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
BeatmapMetadata.cs Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
BeatmapMetadataInfoExtensions.cs Add fallback for cases where beatmap has no author/title/artist specified 2021-11-10 18:29:05 +09:00
BeatmapModelDownloader.cs Move second generic to abstract model downloader rather than interface type 2021-11-05 17:37:05 +09:00
BeatmapModelManager.cs Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
BeatmapOnlineLookupQueue.cs Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
BeatmapProcessor.cs
BeatmapSetFileInfo.cs Update all EF based models to implement new read only interfaces 2021-10-01 16:55:50 +09:00
BeatmapSetHypeStatus.cs Add new statistic types to online info 2021-11-07 21:33:41 +01:00
BeatmapSetInfo.cs Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
BeatmapSetNominationStatus.cs Add new statistic types to online info 2021-11-07 21:33:41 +01:00
BeatmapSetOnlineAvailability.cs Enable nullable and switch classes to structs 2021-10-21 18:54:36 +09:00
BeatmapSetOnlineCovers.cs APIBeatmapSet.Covers is never null 2021-10-21 19:34:01 +09:00
BeatmapSetOnlineGenre.cs Enable nullable and switch classes to structs 2021-10-21 18:54:36 +09:00
BeatmapSetOnlineLanguage.cs Enable nullable and switch classes to structs 2021-10-21 18:54:36 +09:00
BeatmapSetOnlineStatus.cs
BeatmapStatistic.cs
BeatmapStatisticIcon.cs
BeatmapStore.cs Rename all remaining cases 2021-10-03 00:55:29 +09:00
CountdownType.cs
DifficultyRating.cs
DifficultyRecommender.cs Rename BeatmapInfo.StarDifficulty to StarRating to match underlying interface 2021-11-11 17:19:46 +09:00
DummyWorkingBeatmap.cs Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
IBeatmap.cs Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
IBeatmapConverter.cs
IBeatmapDifficultyInfo.cs Switch BeatmapDifficulty usages to use interface type 2021-10-01 16:55:50 +09:00
IBeatmapInfo.cs Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
IBeatmapMetadataInfo.cs Change IBeatmapMetadataInfo.Author to be an IUser 2021-11-04 18:32:42 +09:00
IBeatmapModelManager.cs Add missing methods to interfaces 2021-10-06 12:55:04 +09:00
IBeatmapOnlineInfo.cs Rename BeatmapMetrics to APIFailTimes 2021-10-25 15:34:41 +09:00
IBeatmapProcessor.cs
IBeatmapResourceProvider.cs
IBeatmapSetInfo.cs Add back interface equality but limit to only matching types 2021-11-16 12:35:18 +09:00
IBeatmapSetOnlineInfo.cs Add new statistic types to online info 2021-11-07 21:33:41 +01:00
IWorkingBeatmap.cs Merge branch 'master' into beatmap-cancellation-token 2021-11-17 11:16:10 +09:00
IWorkingBeatmapCache.cs Add missing methods to interfaces 2021-10-06 12:55:04 +09:00
MetadataUtils.cs Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
StarDifficulty.cs
WorkingBeatmap.cs Only apply default timeout when debugger not attached 2021-11-18 23:26:45 +09:00
WorkingBeatmapCache.cs Rewrite PreviewTrackManager to avoid constructing TrackBass locally 2021-11-09 17:38:12 +09:00