Piotrekol / StreamCompanion

osu! information extractor, ranging from selected map info to live play data
MIT License
369 stars 59 forks source link

Mania strains calculation fails on majority of maps #368

Closed Piotrekol closed 1 year ago

Piotrekol commented 1 year ago

eg https://osu.ppy.sh/beatmapsets/1889263#osu/3891073

System.IndexOutOfRangeException:Index was outside the bounds of the array.
?, in double Strain.StrainValueOf(DifficultyHitObject current)
?, in double StrainDecaySkill.StrainValueAt(DifficultyHitObject current)
?, in void StrainSkill.Process(DifficultyHitObject current)
?, in List<TimedDifficultyAttributes> DifficultyCalculator.CalculateTimed(IEnumerable<Mod> mods, CancellationToken cancellationToken)
?, in PerformanceAttributes PpCalculator.InternalCalculate(CancellationToken cancellationToken, double? startTime, double? endTime)
?, in PerformanceAttributes PpCalculator.Calculate(CancellationToken cancellationToken, double? startTime, double? endTime)
?, in Dictionary<int, double> PpCalculatorExtensions.CalculateStrains(IPpCalculator ppCalculator, CancellationToken cancellationToken, int? targetAmount)
?, in Task PpReplacements.CreateTokensAsync(IMapSearchResult map, CancellationToken cancellationToken)+() => { }
?, in void Lazy<T>.ViaFactory(LazyThreadSafetyMode mode)
?, in void Lazy<T>.ExecutionAndPublication(LazyHelper executionAndPublication, bool useDefaultConstructor)
?, in T Lazy<T>.CreateValue()
?, in object LazyToken<T>.get_Value()
?, in void LiveVisualizerPlugin.ProcessNewMap(IMapSearchResult mapSearchResult)
?, in Task LiveVisualizerPluginBase.SetNewMapAsync(IMapSearchResult map, CancellationToken cancellationToken)
?, in async Task MainMapDataGetter.SetNewMap(IMapSearchResult map, CancellationToken cancellationToken)
?, in async Task MainMapDataGetter.ProcessMapResult(IMapSearchResult mapSearchResult, CancellationToken cancellationToken)+(?) => { }
?, in async Task OsuEventHandler.HandleMapSearchResult(IMapSearchResult mapSearchResult, CancellationToken token)
?, in async Task OsuEventHandler.HandleMapSearchArgs(IMapSearchArgs mapSearchArgs)
?, in async Task OsuEventHandler.OsuEventWorkerLoop()