protected override void UpdateHitObject(HitObject currHitObject) { SliderOsu slider = currHitObject as SliderOsu; if (slider != null) { if (AudioEngine.Time >= slider.StartTime && AudioEngine.Time <= slider.EndTime) { slider.InitSlide(); sliderActive = true; } } if (AudioEngine.AudioState == AudioStates.Playing && AudioEngine.FrameAverage < 300) { if ((currHitObject.StartTime <= AudioEngine.Time && currHitObject.StartTime >= AudioEngine.TimeLastFrame && !currHitObject.IsType(HitObjectType.Spinner)) || (currHitObject.EndTime <= AudioEngine.Time && currHitObject.EndTime >= AudioEngine.TimeLastFrame)) { if (!currHitObject.Sounded) { currHitObject.PlaySound(); currHitObject.Sounded = true; } } else if (currHitObject.Sounded && Math.Abs(currHitObject.StartTime - AudioEngine.Time) > AudioEngine.FrameAverage * 4) { currHitObject.Sounded = false; } } base.UpdateHitObject(currHitObject); }