diff --git a/Directory.Build.props b/Directory.Build.props
index 9ec442aafa..049db816a8 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -40,7 +40,7 @@
https://github.com/ppy/osu
Automated release.
ppy Pty Ltd
- Copyright (c) 2020 ppy Pty Ltd
+ Copyright (c) 2021 ppy Pty Ltd
osu game
-
\ No newline at end of file
+
diff --git a/LICENCE b/LICENCE
index 2435c23545..b5962ad3b2 100644
--- a/LICENCE
+++ b/LICENCE
@@ -1,4 +1,4 @@
-Copyright (c) 2020 ppy Pty Ltd .
+Copyright (c) 2021 ppy Pty Ltd .
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/osu.Desktop/osu.nuspec b/osu.Desktop/osu.nuspec
index 2fc6009183..fa182f8e70 100644
--- a/osu.Desktop/osu.nuspec
+++ b/osu.Desktop/osu.nuspec
@@ -11,7 +11,7 @@
false
A free-to-win rhythm game. Rhythm is just a *click* away!
testing
- Copyright (c) 2020 ppy Pty Ltd
+ Copyright (c) 2021 ppy Pty Ltd
en-AU
diff --git a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
index da6da0ea97..e5eaf5db88 100644
--- a/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
+++ b/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs
@@ -750,7 +750,7 @@ namespace osu.Game.Rulesets.Objects.Drawables
if (Result.Type != originalType)
{
Logger.Log($"{GetType().ReadableName()} applied an invalid hit result ({originalType}) when {nameof(HitResult.IgnoreMiss)} or {nameof(HitResult.IgnoreHit)} is expected.\n"
- + $"This has been automatically adjusted to {Result.Type}, and support will be removed from 2020-03-28 onwards.", level: LogLevel.Important);
+ + $"This has been automatically adjusted to {Result.Type}, and support will be removed from 2021-03-28 onwards.", level: LogLevel.Important);
}
}
diff --git a/osu.Game/Rulesets/Objects/Legacy/ConvertSlider.cs b/osu.Game/Rulesets/Objects/Legacy/ConvertSlider.cs
index 36b421586e..df569b91c1 100644
--- a/osu.Game/Rulesets/Objects/Legacy/ConvertSlider.cs
+++ b/osu.Game/Rulesets/Objects/Legacy/ConvertSlider.cs
@@ -10,10 +10,7 @@ using osu.Game.Beatmaps.ControlPoints;
namespace osu.Game.Rulesets.Objects.Legacy
{
- internal abstract class ConvertSlider : ConvertHitObject, IHasPathWithRepeats, IHasLegacyLastTickOffset,
-#pragma warning disable 618
- IHasCurve
-#pragma warning restore 618
+ internal abstract class ConvertSlider : ConvertHitObject, IHasPathWithRepeats, IHasLegacyLastTickOffset
{
///
/// Scoring distance with a speed-adjusted beat length of 1 second.
diff --git a/osu.Game/Rulesets/Objects/Types/IHasCurve.cs b/osu.Game/Rulesets/Objects/Types/IHasCurve.cs
deleted file mode 100644
index 26f50ffa31..0000000000
--- a/osu.Game/Rulesets/Objects/Types/IHasCurve.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-using System;
-using osuTK;
-
-namespace osu.Game.Rulesets.Objects.Types
-{
- [Obsolete("Use IHasPathWithRepeats instead.")] // can be removed 20201126
- public interface IHasCurve : IHasDistance, IHasRepeats
- {
- ///
- /// The curve.
- ///
- SliderPath Path { get; }
- }
-
-#pragma warning disable 618
- [Obsolete("Use IHasPathWithRepeats instead.")] // can be removed 20201126
- public static class HasCurveExtensions
- {
- ///
- /// Computes the position on the curve relative to how much of the has been completed.
- ///
- /// The curve.
- /// [0, 1] where 0 is the start time of the and 1 is the end time of the .
- /// The position on the curve.
- public static Vector2 CurvePositionAt(this IHasCurve obj, double progress)
- => obj.Path.PositionAt(obj.ProgressAt(progress));
-
- ///
- /// Computes the progress along the curve relative to how much of the has been completed.
- ///
- /// The curve.
- /// [0, 1] where 0 is the start time of the and 1 is the end time of the .
- /// [0, 1] where 0 is the beginning of the curve and 1 is the end of the curve.
- public static double ProgressAt(this IHasCurve obj, double progress)
- {
- double p = progress * obj.SpanCount() % 1;
- if (obj.SpanAt(progress) % 2 == 1)
- p = 1 - p;
- return p;
- }
-
- ///
- /// Determines which span of the curve the progress point is on.
- ///
- /// The curve.
- /// [0, 1] where 0 is the beginning of the curve and 1 is the end of the curve.
- /// [0, SpanCount) where 0 is the first run.
- public static int SpanAt(this IHasCurve obj, double progress)
- => (int)(progress * obj.SpanCount());
- }
-#pragma warning restore 618
-}
diff --git a/osu.Game/Rulesets/Objects/Types/IHasDuration.cs b/osu.Game/Rulesets/Objects/Types/IHasDuration.cs
index b558273650..ca734da5ad 100644
--- a/osu.Game/Rulesets/Objects/Types/IHasDuration.cs
+++ b/osu.Game/Rulesets/Objects/Types/IHasDuration.cs
@@ -6,26 +6,16 @@ namespace osu.Game.Rulesets.Objects.Types
///
/// A HitObject that ends at a different time than its start time.
///
-#pragma warning disable 618
- public interface IHasDuration : IHasEndTime
-#pragma warning restore 618
+ public interface IHasDuration
{
- double IHasEndTime.EndTime
- {
- get => EndTime;
- set => Duration = (Duration - EndTime) + value;
- }
-
- double IHasEndTime.Duration => Duration;
-
///
/// The time at which the HitObject ends.
///
- new double EndTime { get; }
+ double EndTime { get; }
///
/// The duration of the HitObject.
///
- new double Duration { get; set; }
+ double Duration { get; set; }
}
}
diff --git a/osu.Game/Rulesets/Objects/Types/IHasEndTime.cs b/osu.Game/Rulesets/Objects/Types/IHasEndTime.cs
deleted file mode 100644
index c3769c5909..0000000000
--- a/osu.Game/Rulesets/Objects/Types/IHasEndTime.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
-// See the LICENCE file in the repository root for full licence text.
-
-using System;
-using Newtonsoft.Json;
-
-namespace osu.Game.Rulesets.Objects.Types
-{
- ///
- /// A HitObject that ends at a different time than its start time.
- ///
- [Obsolete("Use IHasDuration instead.")] // can be removed 20201126
- public interface IHasEndTime
- {
- ///
- /// The time at which the HitObject ends.
- ///
- [JsonIgnore]
- double EndTime { get; set; }
-
- ///
- /// The duration of the HitObject.
- ///
- double Duration { get; }
- }
-}
diff --git a/osu.Game/Rulesets/RulesetStore.cs b/osu.Game/Rulesets/RulesetStore.cs
index d422bca087..deabea57ef 100644
--- a/osu.Game/Rulesets/RulesetStore.cs
+++ b/osu.Game/Rulesets/RulesetStore.cs
@@ -100,9 +100,7 @@ namespace osu.Game.Rulesets
foreach (var r in instances.Where(r => !(r is ILegacyRuleset)))
{
- // todo: StartsWith can be changed to Equals on 2020-11-08
- // This is to give users enough time to have their database use new abbreviated info).
- if (existingRulesets.FirstOrDefault(ri => ri.InstantiationInfo.StartsWith(r.RulesetInfo.InstantiationInfo, StringComparison.Ordinal)) == null)
+ if (existingRulesets.FirstOrDefault(ri => ri.InstantiationInfo.Equals(r.RulesetInfo.InstantiationInfo, StringComparison.Ordinal)) == null)
context.RulesetInfo.Add(r.RulesetInfo);
}
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs b/osu.Game/Screens/Select/BeatmapCarousel.cs
index 36f8fbedb3..7ba6e400bf 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -936,7 +936,6 @@ namespace osu.Game.Screens.Select
Masking = false;
}
- // ReSharper disable once OptionalParameterHierarchyMismatch 2020.3 EAP4 bug. (https://youtrack.jetbrains.com/issue/RSRP-481535?p=RIDER-51910)
protected override void OnUserScroll(float value, bool animated = true, double? distanceDecay = default)
{
UserScrolling = true;