1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 23:03:21 +08:00

Merge branch 'master' into taiko_conversion

This commit is contained in:
Dean Herbert 2017-03-23 14:26:24 +09:00 committed by GitHub
commit 63948564c6
120 changed files with 345 additions and 289 deletions

@ -1 +1 @@
Subproject commit 42ec8a62fb697f1d967a927549dc51336cd66968
Subproject commit 06e426da039f7bb54aedf5d82c21b8d858a0310e

View File

@ -53,7 +53,7 @@ namespace osu.Desktop.Deploy
private static string nupkgFilename(string ver) => $"{PackageName}.{ver}.nupkg";
private static string nupkgDistroFilename(string ver) => $"{PackageName}-{ver}-full.nupkg";
private static Stopwatch sw = new Stopwatch();
private static readonly Stopwatch sw = new Stopwatch();
private static string codeSigningPassword;

View File

@ -15,7 +15,7 @@ namespace osu.Desktop.VisualTests.Beatmaps
this.beatmap = beatmap;
}
private Beatmap beatmap;
private readonly Beatmap beatmap;
protected override Beatmap GetBeatmap() => beatmap;
protected override Texture GetBackground() => null;

View File

@ -10,7 +10,7 @@ namespace osu.Desktop.VisualTests
{
public class Benchmark : OsuGameBase
{
private double timePerTest = 200;
private const double time_per_test = 200;
[BackgroundDependencyLoader]
private void load()
@ -27,7 +27,7 @@ namespace osu.Desktop.VisualTests
TestBrowser f = new TestBrowser();
Add(f);
Console.WriteLine($@"{Time}: Running {f.TestCount} tests for {timePerTest}ms each...");
Console.WriteLine($@"{Time}: Running {f.TestCount} tests for {time_per_test}ms each...");
for (int i = 1; i < f.TestCount; i++)
{
@ -36,10 +36,10 @@ namespace osu.Desktop.VisualTests
{
f.LoadTest(loadableCase);
Console.WriteLine($@"{Time}: Switching to test #{loadableCase}");
}, loadableCase * timePerTest);
}, loadableCase * time_per_test);
}
Scheduler.AddDelayed(Host.Exit, f.TestCount * timePerTest);
Scheduler.AddDelayed(Host.Exit, f.TestCount * time_per_test);
}
}
}

View File

@ -21,7 +21,7 @@ namespace osu.Desktop.VisualTests.Tests
{
internal class TestCaseHitObjects : TestCase
{
private FramedClock framedClock;
private readonly FramedClock framedClock;
private bool auto;
@ -34,7 +34,7 @@ namespace osu.Desktop.VisualTests.Tests
private HitObjectType mode = HitObjectType.Slider;
private BindableNumber<double> playbackSpeed = new BindableDouble(0.5) { MinValue = 0, MaxValue = 1 };
private readonly BindableNumber<double> playbackSpeed = new BindableDouble(0.5) { MinValue = 0, MaxValue = 1 };
private Container playfieldContainer;
private Container approachContainer;

View File

@ -95,7 +95,7 @@ namespace osu.Desktop.VisualTests.Tests
progressingNotifications.Add(n);
}
private List<ProgressNotification> progressingNotifications = new List<ProgressNotification>();
private readonly List<ProgressNotification> progressingNotifications = new List<ProgressNotification>();
private void sendProgress1()
{

View File

@ -17,7 +17,7 @@ namespace osu.Desktop
{
internal class OsuGameDesktop : OsuGame
{
private VersionManager versionManager;
private readonly VersionManager versionManager;
public OsuGameDesktop(string[] args = null)
: base(args)

View File

@ -12,7 +12,7 @@ namespace osu.Game.Modes.Catch.Objects.Drawable
{
internal class DrawableFruit : Sprite
{
private CatchBaseHit h;
private readonly CatchBaseHit h;
public DrawableFruit(CatchBaseHit h)
{
@ -29,7 +29,7 @@ namespace osu.Game.Modes.Catch.Objects.Drawable
{
Texture = textures.Get(@"Menu/logo");
double duration = 0;
const double duration = 0;
Transforms.Add(new TransformPosition { StartTime = h.StartTime - 200, EndTime = h.StartTime, StartValue = new Vector2(h.Position, -0.1f), EndValue = new Vector2(h.Position, 0.9f) });
Transforms.Add(new TransformAlpha { StartTime = h.StartTime + duration + 200, EndTime = h.StartTime + duration + 400, StartValue = 1, EndValue = 0 });

View File

@ -26,7 +26,7 @@ namespace osu.Game.Modes.Mania.Objects.Drawable
{
Texture = textures.Get(@"Menu/logo");
double duration = 0;
const double duration = 0;
Transforms.Add(new TransformPositionY { StartTime = note.StartTime - 200, EndTime = note.StartTime, StartValue = -0.1f, EndValue = 0.9f });
Transforms.Add(new TransformAlpha { StartTime = note.StartTime + duration + 200, EndTime = note.StartTime + duration + 400, StartValue = 1, EndValue = 0 });

View File

@ -81,7 +81,7 @@ namespace osu.Game.Modes.Osu.Beatmaps
if (endIndex == -1)
endIndex = hitObjects.Count - 1;
int stackDistance = 3;
const int stack_distance = 3;
float stackThreshold = DrawableOsuHitObject.TIME_PREEMPT * stackLeniency;
// Reset stacking inside the update range
@ -108,8 +108,8 @@ namespace osu.Game.Modes.Osu.Beatmaps
//We are no longer within stacking range of the next object.
break;
if (Vector2.Distance(stackBaseObject.Position, objectN.Position) < stackDistance ||
stackBaseObject is Slider && Vector2.Distance(stackBaseObject.EndPosition, objectN.Position) < stackDistance)
if (Vector2.Distance(stackBaseObject.Position, objectN.Position) < stack_distance ||
stackBaseObject is Slider && Vector2.Distance(stackBaseObject.EndPosition, objectN.Position) < stack_distance)
{
stackBaseIndex = n;
@ -174,14 +174,14 @@ namespace osu.Game.Modes.Osu.Beatmaps
* o <- hitCircle has stack of -1
* o <- hitCircle has stack of -2
*/
if (objectN is Slider && Vector2.Distance(objectN.EndPosition, objectI.Position) < stackDistance)
if (objectN is Slider && Vector2.Distance(objectN.EndPosition, objectI.Position) < stack_distance)
{
int offset = objectI.StackHeight - objectN.StackHeight + 1;
for (int j = n + 1; j <= i; j++)
{
//For each object which was declared under this slider, we will offset it to appear *below* the slider end (rather than above).
OsuHitObject objectJ = hitObjects[j];
if (Vector2.Distance(objectN.EndPosition, objectJ.Position) < stackDistance)
if (Vector2.Distance(objectN.EndPosition, objectJ.Position) < stack_distance)
objectJ.StackHeight -= offset;
}
@ -190,7 +190,7 @@ namespace osu.Game.Modes.Osu.Beatmaps
break;
}
if (Vector2.Distance(objectN.Position, objectI.Position) < stackDistance)
if (Vector2.Distance(objectN.Position, objectI.Position) < stack_distance)
{
//Keep processing as if there are no sliders. If we come across a slider, this gets cancelled out.
//NOTE: Sliders with start positions stacking are a special case that is also handled here.
@ -214,7 +214,7 @@ namespace osu.Game.Modes.Osu.Beatmaps
//We are no longer within stacking range of the previous object.
break;
if (Vector2.Distance(objectN.EndPosition, objectI.Position) < stackDistance)
if (Vector2.Distance(objectN.EndPosition, objectI.Position) < stack_distance)
{
objectN.StackHeight = objectI.StackHeight + 1;
objectI = objectN;

View File

@ -13,15 +13,15 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
{
public class DrawableHitCircle : DrawableOsuHitObject, IDrawableHitObjectWithProxiedApproach
{
private OsuHitObject osuObject;
private readonly OsuHitObject osuObject;
public ApproachCircle ApproachCircle;
private CirclePiece circle;
private RingPiece ring;
private FlashPiece flash;
private ExplodePiece explode;
private NumberPiece number;
private GlowPiece glow;
private readonly CirclePiece circle;
private readonly RingPiece ring;
private readonly FlashPiece flash;
private readonly ExplodePiece explode;
private readonly NumberPiece number;
private readonly GlowPiece glow;
public DrawableHitCircle(OsuHitObject h) : base(h)
{

View File

@ -13,18 +13,18 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
{
public class DrawableSlider : DrawableOsuHitObject, IDrawableHitObjectWithProxiedApproach
{
private Slider slider;
private readonly Slider slider;
private DrawableHitCircle initialCircle;
private readonly DrawableHitCircle initialCircle;
private List<ISliderProgress> components = new List<ISliderProgress>();
private readonly List<ISliderProgress> components = new List<ISliderProgress>();
private Container<DrawableSliderTick> ticks;
private readonly Container<DrawableSliderTick> ticks;
private SliderBody body;
private SliderBall ball;
private readonly SliderBody body;
private readonly SliderBall ball;
private SliderBouncer bouncer2;
private readonly SliderBouncer bouncer2;
public DrawableSlider(Slider s) : base(s)
{

View File

@ -18,7 +18,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
{
public class DrawableSliderTick : DrawableOsuHitObject
{
private SliderTick sliderTick;
private readonly SliderTick sliderTick;
public double FadeInTime;
public double FadeOutTime;

View File

@ -15,12 +15,12 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
{
public class DrawableSpinner : DrawableOsuHitObject
{
private Spinner spinner;
private readonly Spinner spinner;
private SpinnerDisc disc;
private SpinnerBackground background;
private Container circleContainer;
private DrawableHitCircle circle;
private readonly SpinnerDisc disc;
private readonly SpinnerBackground background;
private readonly Container circleContainer;
private readonly DrawableHitCircle circle;
public DrawableSpinner(Spinner s) : base(s)
{
@ -108,9 +108,9 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
private Vector2 scaleToCircle => circle.Scale * circle.DrawWidth / DrawWidth * 0.95f;
private float spinsPerMinuteNeeded = 100 + 5 * 15; //TODO: read per-map OD and place it on the 5
private const float spins_per_minute_needed = 100 + 5 * 15; //TODO: read per-map OD and place it on the 5
private float rotationsNeeded => (float)(spinsPerMinuteNeeded * (spinner.EndTime - spinner.StartTime) / 60000f);
private float rotationsNeeded => (float)(spins_per_minute_needed * (spinner.EndTime - spinner.StartTime) / 60000f);
public float Progress => MathHelper.Clamp(disc.RotationAbsolute / 360 / rotationsNeeded, 0, 1);

View File

@ -17,8 +17,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
public class HitExplosion : FillFlowContainer
{
private readonly OsuJudgementInfo judgement;
private SpriteText line1;
private SpriteText line2;
private readonly SpriteText line1;
private readonly SpriteText line2;
public HitExplosion(OsuJudgementInfo judgement, OsuHitObject h = null)
{

View File

@ -11,7 +11,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
public class ApproachCircle : Container
{
private Sprite approachCircle;
private readonly Sprite approachCircle;
public ApproachCircle()
{

View File

@ -14,7 +14,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
public class CirclePiece : Container
{
private Sprite disc;
private readonly Sprite disc;
public Func<bool> Hit;

View File

@ -11,7 +11,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
public class GlowPiece : Container
{
private Sprite layer;
private readonly Sprite layer;
public GlowPiece()
{

View File

@ -12,7 +12,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
public class NumberPiece : Container
{
private SpriteText number;
private readonly SpriteText number;
public string Text
{

View File

@ -13,7 +13,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
public class SliderBall : CircularContainer, ISliderProgress
{
private readonly Slider slider;
private Box follow;
private readonly Box follow;
private const float width = 128;

View File

@ -18,8 +18,8 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
public class SliderBody : Container, ISliderProgress
{
private Path path;
private BufferedContainer container;
private readonly Path path;
private readonly BufferedContainer container;
public float PathWidth
{
@ -33,7 +33,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
public double? SnakedStart { get; private set; }
public double? SnakedEnd { get; private set; }
private Slider slider;
private readonly Slider slider;
public SliderBody(Slider s)
{
slider = s;
@ -122,7 +122,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
path.Texture = texture;
}
private List<Vector2> currentCurve = new List<Vector2>();
private readonly List<Vector2> currentCurve = new List<Vector2>();
private bool updateSnaking(double p0, double p1)
{
if (SnakedStart == p0 && SnakedEnd == p1) return false;

View File

@ -11,7 +11,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables.Pieces
{
private readonly Slider slider;
private readonly bool isEnd;
private TextAwesome icon;
private readonly TextAwesome icon;
public SliderBouncer(Slider slider, bool isEnd)
{

View File

@ -47,11 +47,11 @@ namespace osu.Game.Modes.Osu.Objects
internal int MaxCombo = 1;
private float scalingFactor;
private readonly float scalingFactor;
private float lazySliderLength;
private Vector2 startPosition;
private Vector2 endPosition;
private readonly Vector2 startPosition;
private readonly Vector2 endPosition;
internal OsuHitObjectDifficulty(OsuHitObject baseHitObject)
{

View File

@ -20,7 +20,7 @@ namespace osu.Game.Modes.Osu
private const float spin_radius = 50;
private Beatmap<OsuHitObject> beatmap;
private readonly Beatmap<OsuHitObject> beatmap;
public OsuAutoReplay(Beatmap<OsuHitObject> beatmap)
{
@ -37,11 +37,11 @@ namespace osu.Game.Modes.Osu
}
}
private static IComparer<LegacyReplayFrame> replayFrameComparer = new LegacyReplayFrameComparer();
private static readonly IComparer<LegacyReplayFrame> replay_frame_comparer = new LegacyReplayFrameComparer();
private int findInsertionIndex(LegacyReplayFrame frame)
{
int index = Frames.BinarySearch(frame, replayFrameComparer);
int index = Frames.BinarySearch(frame, replay_frame_comparer);
if (index < 0)
{

View File

@ -17,9 +17,9 @@ namespace osu.Game.Modes.Osu.UI
{
public class OsuPlayfield : Playfield<OsuHitObject, OsuJudgementInfo>
{
private Container approachCircles;
private Container judgementLayer;
private ConnectionRenderer<OsuHitObject> connectionLayer;
private readonly Container approachCircles;
private readonly Container judgementLayer;
private readonly ConnectionRenderer<OsuHitObject> connectionLayer;
public override Vector2 Size
{

View File

@ -12,7 +12,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable
{
internal class DrawableTaikoHit : Sprite
{
private TaikoHitObject h;
private readonly TaikoHitObject h;
public DrawableTaikoHit(TaikoHitObject h)
{
@ -29,7 +29,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable
{
Texture = textures.Get(@"Menu/logo");
double duration = 0;
const double duration = 0;
Transforms.Add(new TransformPositionX { StartTime = h.StartTime - 200, EndTime = h.StartTime, StartValue = 1.1f, EndValue = 0.1f });
Transforms.Add(new TransformAlpha { StartTime = h.StartTime + duration + 200, EndTime = h.StartTime + duration + 400, StartValue = 1, EndValue = 0 });

View File

@ -15,8 +15,8 @@ namespace osu.Game.Beatmaps
private void loadTiming()
{
// TODO: Handle mods
int audioRate = 100;
TimeRate = audioRate / 100.0;
const int audio_rate = 100;
TimeRate = audio_rate / 100.0;
}
public double Calculate(Dictionary<string, string> categoryDifficulty = null)

View File

@ -21,12 +21,12 @@ namespace osu.Game.Beatmaps.Drawables
public class BeatmapPanel : Panel
{
public BeatmapInfo Beatmap;
private Sprite background;
private readonly Sprite background;
public Action<BeatmapPanel> GainedSelection;
public Action<BeatmapPanel> StartRequested;
private Triangles triangles;
private StarCounter starCounter;
private readonly Triangles triangles;
private readonly StarCounter starCounter;
protected override void Selected()
{

View File

@ -20,11 +20,12 @@ namespace osu.Game.Beatmaps.Drawables
public class BeatmapSetHeader : Panel
{
public Action<BeatmapSetHeader> GainedSelection;
private SpriteText title, artist;
private readonly SpriteText title;
private readonly SpriteText artist;
private OsuConfigManager config;
private Bindable<bool> preferUnicode;
private WorkingBeatmap beatmap;
private FillFlowContainer difficultyIcons;
private readonly WorkingBeatmap beatmap;
private readonly FillFlowContainer difficultyIcons;
public BeatmapSetHeader(WorkingBeatmap beatmap)
{

View File

@ -18,7 +18,7 @@ namespace osu.Game.Beatmaps.Drawables
public override bool RemoveWhenNotAlive => false;
private Container nestedContainer;
private readonly Container nestedContainer;
protected override Container<Drawable> Content => nestedContainer;

View File

@ -21,9 +21,9 @@ namespace osu.Game.Beatmaps.IO
OsuLegacyDecoder.Register();
}
private Stream archiveStream;
private ZipFile archive;
private Beatmap firstMap;
private readonly Stream archiveStream;
private readonly ZipFile archive;
private readonly Beatmap firstMap;
public OszArchiveReader(Stream archiveStream)
{

View File

@ -42,7 +42,7 @@ namespace osu.Game.Beatmaps
protected abstract Track GetTrack();
private Beatmap beatmap;
private object beatmapLock = new object();
private readonly object beatmapLock = new object();
public Beatmap Beatmap
{
get
@ -54,7 +54,7 @@ namespace osu.Game.Beatmaps
}
}
private object backgroundLock = new object();
private readonly object backgroundLock = new object();
private Texture background;
public Texture Background
{
@ -68,7 +68,7 @@ namespace osu.Game.Beatmaps
}
private Track track;
private object trackLock = new object();
private readonly object trackLock = new object();
public Track Track
{
get

View File

@ -21,7 +21,7 @@ namespace osu.Game.Database
public class BeatmapDatabase
{
private SQLiteConnection connection { get; }
private Storage storage;
private readonly Storage storage;
public event Action<BeatmapSetInfo> BeatmapSetAdded;
public event Action<BeatmapSetInfo> BeatmapSetRemoved;

View File

@ -14,7 +14,7 @@ namespace osu.Game.Graphics.Backgrounds
{
public Sprite Sprite;
private string textureName;
private readonly string textureName;
public Background(string textureName = @"")
{

View File

@ -89,13 +89,13 @@ namespace osu.Game.Graphics.Backgrounds
protected virtual Triangle CreateTriangle()
{
float stdDev = 0.16f;
float mean = 0.5f;
const float std_dev = 0.16f;
const float mean = 0.5f;
float u1 = 1 - RNG.NextSingle(); //uniform(0,1] random floats
float u2 = 1 - RNG.NextSingle();
float randStdNormal = (float)(Math.Sqrt(-2.0 * Math.Log(u1)) * Math.Sin(2.0 * Math.PI * u2)); //random normal(0,1)
var scale = Math.Max(triangleScale * (mean + stdDev * randStdNormal), 0.1f); //random normal(mean,stdDev^2)
var scale = Math.Max(triangleScale * (mean + std_dev * randStdNormal), 0.1f); //random normal(mean,stdDev^2)
const float size = 100;

View File

@ -31,7 +31,7 @@ namespace osu.Game.Graphics.Containers
});
}
private Container content;
private readonly Container content;
private InputManager input;
protected override Container<Drawable> Content => content;

View File

@ -31,10 +31,10 @@ namespace osu.Game.Graphics.Cursor
private float time;
private TrailDrawNodeSharedData trailDrawNodeSharedData = new TrailDrawNodeSharedData();
private readonly TrailDrawNodeSharedData trailDrawNodeSharedData = new TrailDrawNodeSharedData();
private const int max_sprites = 2048;
private TrailPart[] parts = new TrailPart[max_sprites];
private readonly TrailPart[] parts = new TrailPart[max_sprites];
private Vector2? lastPosition;
@ -88,10 +88,10 @@ namespace osu.Game.Graphics.Cursor
Invalidate(Invalidation.DrawNode, shallPropagate: false);
int fadeClockResetThreshold = 1000000;
const int fade_clock_reset_threshold = 1000000;
time = (float)(Time.Current - timeOffset) / 500f;
if (time > fadeClockResetThreshold)
if (time > fade_clock_reset_threshold)
resetTime();
}
@ -163,7 +163,7 @@ namespace osu.Game.Graphics.Cursor
public float Time;
public TrailDrawNodeSharedData Shared;
public TrailPart[] Parts = new TrailPart[max_sprites];
public readonly TrailPart[] Parts = new TrailPart[max_sprites];
public Vector2 Size;
public TrailDrawNode()

View File

@ -81,9 +81,14 @@ namespace osu.Game.Graphics.UserInterface
public SampleChannel SampleClick, SampleHover;
private Container backgroundContainer, colourContainer, glowContainer;
private Box leftGlow, centerGlow, rightGlow, background;
private SpriteText spriteText;
private readonly Container backgroundContainer;
private readonly Container colourContainer;
private readonly Container glowContainer;
private readonly Box leftGlow;
private readonly Box centerGlow;
private readonly Box rightGlow;
private readonly Box background;
private readonly SpriteText spriteText;
private Vector2 hoverSpacing => new Vector2(3f, 0f);
private bool didClick; // Used for making sure that the OnMouseDown animation can call instead of OnHoverLost's when clicking

View File

@ -18,7 +18,7 @@ namespace osu.Game.Graphics.UserInterface
public const float COLLAPSED_SIZE = 20;
public const float EXPANDED_SIZE = 40;
private Box fill;
private readonly Box fill;
private const float border_width = 3;
private Color4 glowingColour, idleColour;

View File

@ -64,8 +64,8 @@ namespace osu.Game.Graphics.UserInterface
}
}
private Nub nub;
private SpriteText labelSpriteText;
private readonly Nub nub;
private readonly SpriteText labelSpriteText;
private SampleChannel sampleChecked;
private SampleChannel sampleUnchecked;

View File

@ -85,7 +85,7 @@ namespace osu.Game.Graphics.UserInterface
private Color4? accentColour;
private TextAwesome chevron;
private readonly TextAwesome chevron;
protected override void FormatForeground(bool hover = false)
{
@ -116,7 +116,7 @@ namespace osu.Game.Graphics.UserInterface
protected class OsuDropdownHeader : DropdownHeader
{
private SpriteText label;
private readonly SpriteText label;
protected override string Label
{
get { return label.Text; }

View File

@ -18,7 +18,7 @@ namespace osu.Game.Graphics.UserInterface
public class PasswordMaskChar : Container
{
private CircularContainer circle;
private readonly CircularContainer circle;
public PasswordMaskChar(float size)
{

View File

@ -19,8 +19,9 @@ namespace osu.Game.Graphics.UserInterface
private SampleChannel sample;
private double lastSampleTime;
private Nub nub;
private Box leftBox, rightBox;
private readonly Nub nub;
private readonly Box leftBox;
private readonly Box rightBox;
public OsuSliderBar()
{

View File

@ -59,8 +59,8 @@ namespace osu.Game.Graphics.UserInterface
private class OsuTabItem : TabItem<T>
{
private SpriteText text;
private Box box;
private readonly SpriteText text;
private readonly Box box;
private Color4? accentColour;
public Color4 AccentColour

View File

@ -147,7 +147,7 @@ namespace osu.Game.Graphics.UserInterface
private class Star : Container
{
public TextAwesome Icon;
public readonly TextAwesome Icon;
public Star()
{
Size = new Vector2(star_size);

View File

@ -16,7 +16,7 @@ namespace osu.Game.Graphics.UserInterface
{
public class TwoLayerButton : ClickableContainer
{
private TextAwesome icon;
private readonly TextAwesome icon;
public Box IconLayer;
public Box TextLayer;
@ -29,11 +29,11 @@ namespace osu.Game.Graphics.UserInterface
public static readonly Vector2 SIZE_EXTENDED = new Vector2(140, 50);
public static readonly Vector2 SIZE_RETRACTED = new Vector2(100, 50);
public SampleChannel ActivationSound;
private SpriteText text;
private readonly SpriteText text;
public Color4 HoverColour;
private Container c1;
private Container c2;
private readonly Container c1;
private readonly Container c2;
public Color4 BackgroundColour
{
@ -171,7 +171,7 @@ namespace osu.Game.Graphics.UserInterface
IconLayer.FadeColour(HoverColour, transform_time, EasingTypes.OutElastic);
double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
const double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
double startTime = Time.Current + offset;
// basic pulse
@ -200,7 +200,7 @@ namespace osu.Game.Graphics.UserInterface
int duration = 0; //(int)(Game.Audio.BeatLength);
if (duration == 0) duration = pulse_length * 2;
double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
const double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
double startTime = Time.Current + offset;
// slow pulse

View File

@ -15,7 +15,7 @@ namespace osu.Game.Graphics.UserInterface.Volume
{
internal class VolumeControl : OverlayContainer
{
private VolumeMeter volumeMeterMaster;
private readonly VolumeMeter volumeMeterMaster;
protected override bool HideOnEscape => false;
@ -89,8 +89,8 @@ namespace osu.Game.Graphics.UserInterface.Volume
private ScheduledDelegate popOutDelegate;
private VolumeMeter volumeMeterEffect;
private VolumeMeter volumeMeterMusic;
private readonly VolumeMeter volumeMeterEffect;
private readonly VolumeMeter volumeMeterMusic;
protected override void PopIn()
{

View File

@ -15,7 +15,7 @@ namespace osu.Game.Graphics.UserInterface.Volume
{
internal class VolumeMeter : Container
{
private Box meterFill;
private readonly Box meterFill;
public BindableDouble Bindable { get; } = new BindableDouble();
public VolumeMeter(string meterName)

View File

@ -18,7 +18,7 @@ namespace osu.Game.IO.Legacy
/// handle null strings and simplify use with ISerializable. </summary>
public class SerializationReader : BinaryReader
{
private Stream stream;
private readonly Stream stream;
public SerializationReader(Stream s)
: base(s, Encoding.UTF8)

View File

@ -10,7 +10,7 @@ namespace osu.Game.IPC
{
public class BeatmapIPCChannel : IpcChannel<BeatmapImportMessage>
{
private BeatmapDatabase beatmaps;
private readonly BeatmapDatabase beatmaps;
public BeatmapIPCChannel(IIpcHost host, BeatmapDatabase beatmaps = null)
: base(host)

View File

@ -10,7 +10,7 @@ namespace osu.Game.IPC
{
public class ScoreIPCChannel : IpcChannel<ScoreImportMessage>
{
private ScoreDatabase scores;
private readonly ScoreDatabase scores;
public ScoreIPCChannel(IIpcHost host, ScoreDatabase scores = null)
: base(host)

View File

@ -8,10 +8,10 @@ namespace osu.Game.Modes.Objects
{
public class BezierApproximator
{
private int count;
private List<Vector2> controlPoints;
private Vector2[] subdivisionBuffer1;
private Vector2[] subdivisionBuffer2;
private readonly int count;
private readonly List<Vector2> controlPoints;
private readonly Vector2[] subdivisionBuffer1;
private readonly Vector2[] subdivisionBuffer2;
private const float tolerance = 0.25f;
private const float tolerance_sq = tolerance * tolerance;

View File

@ -10,9 +10,9 @@ namespace osu.Game.Modes.Objects
{
public class CircularArcApproximator
{
private Vector2 a;
private Vector2 b;
private Vector2 c;
private readonly Vector2 a;
private readonly Vector2 b;
private readonly Vector2 c;
private int amountPoints;

View File

@ -19,8 +19,8 @@ namespace osu.Game.Modes.Objects
public Vector2 Offset;
private List<Vector2> calculatedPath = new List<Vector2>();
private List<double> cumulativeLength = new List<double>();
private readonly List<Vector2> calculatedPath = new List<Vector2>();
private readonly List<double> cumulativeLength = new List<double>();
private List<Vector2> calculateSubpath(List<Vector2> subControlPoints)
{

View File

@ -21,9 +21,9 @@ namespace osu.Game.Modes
public abstract class Ruleset
{
private static ConcurrentDictionary<PlayMode, Type> availableRulesets = new ConcurrentDictionary<PlayMode, Type>();
private static readonly ConcurrentDictionary<PlayMode, Type> available_rulesets = new ConcurrentDictionary<PlayMode, Type>();
public static IEnumerable<PlayMode> PlayModes => availableRulesets.Keys;
public static IEnumerable<PlayMode> PlayModes => available_rulesets.Keys;
public virtual IEnumerable<BeatmapStatistic> GetBeatmapStatistics(WorkingBeatmap beatmap) => new BeatmapStatistic[] { };
@ -35,7 +35,7 @@ namespace osu.Game.Modes
public abstract ScoreProcessor CreateScoreProcessor();
public static void Register(Ruleset ruleset) => availableRulesets.TryAdd(ruleset.PlayMode, ruleset.GetType());
public static void Register(Ruleset ruleset) => available_rulesets.TryAdd(ruleset.PlayMode, ruleset.GetType());
protected abstract PlayMode PlayMode { get; }
@ -49,7 +49,7 @@ namespace osu.Game.Modes
{
Type type;
if (!availableRulesets.TryGetValue(mode, out type))
if (!available_rulesets.TryGetValue(mode, out type))
return null;
return Activator.CreateInstance(type) as Ruleset;

View File

@ -155,7 +155,7 @@ namespace osu.Game.Modes.UI
/// </summary>
protected Playfield<TObject, TJudgement> Playfield;
private Container content;
private readonly Container content;
protected HitRenderer(WorkingBeatmap beatmap)
: base(beatmap)

View File

@ -10,7 +10,8 @@ namespace osu.Game.Modes.UI
{
public class ModIcon : Container
{
private TextAwesome modIcon, background;
private readonly TextAwesome modIcon;
private readonly TextAwesome background;
private float iconSize = 80;
public float IconSize

View File

@ -23,7 +23,7 @@ namespace osu.Game.Modes.UI
internal Container<Drawable> ScaledContent;
protected override Container<Drawable> Content => content;
private Container<Drawable> content;
private readonly Container<Drawable> content;
/// <summary>
/// A container for keeping track of DrawableHitObjects.

View File

@ -15,7 +15,7 @@ namespace osu.Game.Modes.UI
{
public class StandardHealthDisplay : HealthDisplay
{
private Container fill;
private readonly Container fill;
public StandardHealthDisplay()
{

View File

@ -17,7 +17,7 @@ namespace osu.Game.Online.API
{
public class APIAccess : IUpdateable
{
private OAuth authentication;
private readonly OAuth authentication;
public string Endpoint = @"https://new.ppy.sh";
private const string client_id = @"5";
@ -44,9 +44,9 @@ namespace osu.Game.Online.API
protected bool HasLogin => Token != null || !string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password);
// ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable (should dispose of this or at very least keep a reference).
private Thread thread;
private readonly Thread thread;
private Logger log;
private readonly Logger log;
public APIAccess()
{
@ -57,7 +57,7 @@ namespace osu.Game.Online.API
thread.Start();
}
private List<IOnlineComponent> components = new List<IOnlineComponent>();
private readonly List<IOnlineComponent> components = new List<IOnlineComponent>();
public void Register(IOnlineComponent component)
{

View File

@ -9,7 +9,7 @@ namespace osu.Game.Online.API.Requests
{
public class GetMessagesRequest : APIRequest<List<Message>>
{
private List<Channel> channels;
private readonly List<Channel> channels;
private long? since;
public GetMessagesRequest(List<Channel> channels, long? sinceId)

View File

@ -14,8 +14,8 @@ namespace osu.Game.Online.Chat.Drawables
public class DrawableChannel : Container
{
private readonly Channel channel;
private FillFlowContainer flow;
private ScrollContainer scroll;
private readonly FillFlowContainer flow;
private readonly ScrollContainer scroll;
public DrawableChannel(Channel channel)
{

View File

@ -60,7 +60,7 @@ namespace osu.Game
public Bindable<PlayMode> PlayMode;
private string[] args;
private readonly string[] args;
private OptionsOverlay options;

View File

@ -31,11 +31,11 @@ namespace osu.Game.Overlays
private ScheduledDelegate messageRequest;
private Container content;
private readonly Container content;
protected override Container<Drawable> Content => content;
private FocusedTextBox inputTextBox;
private readonly FocusedTextBox inputTextBox;
private APIAccess api;

View File

@ -27,10 +27,12 @@ namespace osu.Game.Overlays.Dialog
private readonly Vector2 ringMinifiedSize = new Vector2(20f);
private readonly Vector2 buttonsEnterSpacing = new Vector2(0f, 50f);
private Container content, ring;
private FillFlowContainer<PopupDialogButton> buttonsContainer;
private TextAwesome iconText;
private SpriteText header, body;
private readonly Container content;
private readonly Container ring;
private readonly FillFlowContainer<PopupDialogButton> buttonsContainer;
private readonly TextAwesome iconText;
private readonly SpriteText header;
private readonly SpriteText body;
public FontAwesome Icon
{

View File

@ -13,7 +13,7 @@ namespace osu.Game.Overlays
{
public class DialogOverlay : FocusedOverlayContainer
{
private Container dialogContainer;
private readonly Container dialogContainer;
private PopupDialog currentDialog;
public void Push(PopupDialog dialog)

View File

@ -11,7 +11,7 @@ namespace osu.Game.Overlays
{
public class DragBar : Container
{
private Box fill;
private readonly Box fill;
public Action<float> SeekRequested;
private bool isDragging;

View File

@ -23,8 +23,8 @@ namespace osu.Game.Overlays.Mods
public class ModButton : FillFlowContainer
{
private ModIcon foregroundIcon { get; set; }
private SpriteText text;
private Container<ModIcon> iconsContainer;
private readonly SpriteText text;
private readonly Container<ModIcon> iconsContainer;
private SampleChannel sampleOn, sampleOff;
public Action<Mod> Action; // Passed the selected mod or null if none

View File

@ -16,7 +16,7 @@ namespace osu.Game.Overlays.Mods
{
public abstract class ModSection : Container
{
private OsuSpriteText headerLabel;
private readonly OsuSpriteText headerLabel;
public FillFlowContainer<ModButton> ButtonsContainer { get; }

View File

@ -30,10 +30,11 @@ namespace osu.Game.Overlays.Mods
private Color4 lowMultiplierColour, highMultiplierColour;
private OsuSpriteText rankedLabel, multiplierLabel;
private FillFlowContainer rankedMultiplerContainer;
private readonly OsuSpriteText rankedLabel;
private readonly OsuSpriteText multiplierLabel;
private readonly FillFlowContainer rankedMultiplerContainer;
private FillFlowContainer<ModSection> modSectionsContainer;
private readonly FillFlowContainer<ModSection> modSectionsContainer;
public readonly Bindable<IEnumerable<Mod>> SelectedMods = new Bindable<IEnumerable<Mod>>();

View File

@ -35,7 +35,7 @@ namespace osu.Game.Overlays
private SpriteText title, artist;
private List<BeatmapSetInfo> playList;
private List<BeatmapInfo> playHistory = new List<BeatmapInfo>();
private readonly List<BeatmapInfo> playHistory = new List<BeatmapInfo>();
private int playListIndex;
private int playHistoryIndex = -1;
@ -415,8 +415,8 @@ namespace osu.Game.Overlays
private class MusicControllerBackground : BufferedContainer
{
private Sprite sprite;
private WorkingBeatmap beatmap;
private readonly Sprite sprite;
private readonly WorkingBeatmap beatmap;
public MusicControllerBackground(WorkingBeatmap beatmap = null)
{

View File

@ -35,9 +35,9 @@ namespace osu.Game.Overlays.Notifications
public virtual bool DisplayOnTop => true;
protected NotificationLight Light;
private CloseButton closeButton;
private readonly CloseButton closeButton;
protected Container IconContent;
private Container content;
private readonly Container content;
protected override Container<Drawable> Content => content;

View File

@ -135,7 +135,7 @@ namespace osu.Game.Overlays.Notifications
private class ClearAllButton : ClickableContainer
{
private OsuSpriteText text;
private readonly OsuSpriteText text;
public ClearAllButton()
{

View File

@ -104,12 +104,12 @@ namespace osu.Game.Overlays.Notifications
public override bool DisplayOnTop => false;
private ProgressBar progressBar;
private readonly ProgressBar progressBar;
private Color4 colourQueued;
private Color4 colourActive;
private Color4 colourCancelled;
private SpriteText textDrawable;
private readonly SpriteText textDrawable;
public ProgressNotification()
{

View File

@ -34,8 +34,8 @@ namespace osu.Game.Overlays.Notifications
}
}
private SpriteText textDrawable;
private TextAwesome iconDrawable;
private readonly SpriteText textDrawable;
private readonly TextAwesome iconDrawable;
protected Box IconBackgound;

View File

@ -15,8 +15,8 @@ namespace osu.Game.Overlays.Options
{
public class OptionDropdown<T> : FillFlowContainer
{
private Dropdown<T> dropdown;
private SpriteText text;
private readonly Dropdown<T> dropdown;
private readonly SpriteText text;
public string LabelText
{

View File

@ -14,8 +14,8 @@ namespace osu.Game.Overlays.Options
{
public class OptionSlider<T> : FillFlowContainer where T : struct
{
private SliderBar<T> slider;
private SpriteText text;
private readonly SliderBar<T> slider;
private readonly SpriteText text;
public string LabelText
{

View File

@ -21,7 +21,7 @@ namespace osu.Game.Overlays.Options
public abstract FontAwesome Icon { get; }
public abstract string Header { get; }
private SpriteText headerLabel;
private readonly SpriteText headerLabel;
protected OptionsSection()
{

View File

@ -13,7 +13,7 @@ namespace osu.Game.Overlays.Options
{
protected override Container<Drawable> Content => content;
private Container<Drawable> content;
private readonly Container<Drawable> content;
protected abstract string Header { get; }

View File

@ -15,7 +15,7 @@ namespace osu.Game.Overlays.Options
{
public class Sidebar : Container
{
private FillFlowContainer content;
private readonly FillFlowContainer content;
internal const float DEFAULT_WIDTH = ToolbarButton.WIDTH;
internal const int EXPANDED_WIDTH = 200;
protected override Container<Drawable> Content => content;

View File

@ -16,11 +16,11 @@ namespace osu.Game.Overlays.Options
{
public class SidebarButton : Container
{
private TextAwesome drawableIcon;
private SpriteText headerText;
private Box backgroundBox;
private Box selectionIndicator;
private Container text;
private readonly TextAwesome drawableIcon;
private readonly SpriteText headerText;
private readonly Box backgroundBox;
private readonly Box selectionIndicator;
private readonly Container text;
public Action Action;
private OptionsSection section;

View File

@ -23,8 +23,8 @@ namespace osu.Game.Overlays.Toolbar
public Action OnHome;
public Action<PlayMode> OnPlayModeChange;
private ToolbarModeSelector modeSelector;
private ToolbarUserArea userArea;
private readonly ToolbarModeSelector modeSelector;
private readonly ToolbarUserArea userArea;
protected override bool HideOnEscape => false;
@ -90,8 +90,8 @@ namespace osu.Game.Overlays.Toolbar
public class ToolbarBackground : Container
{
private Box solidBackground;
private Box gradientBackground;
private readonly Box solidBackground;
private readonly Box gradientBackground;
public ToolbarBackground()
{

View File

@ -63,9 +63,9 @@ namespace osu.Game.Overlays.Toolbar
protected TextAwesome DrawableIcon;
protected SpriteText DrawableText;
protected Box HoverBackground;
private FillFlowContainer tooltipContainer;
private SpriteText tooltip1;
private SpriteText tooltip2;
private readonly FillFlowContainer tooltipContainer;
private readonly SpriteText tooltip1;
private readonly SpriteText tooltip2;
protected FillFlowContainer Flow;
private SampleChannel sampleClick;

View File

@ -19,8 +19,8 @@ namespace osu.Game.Overlays.Toolbar
{
private const float padding = 10;
private FillFlowContainer modeButtons;
private Drawable modeButtonLine;
private readonly FillFlowContainer modeButtons;
private readonly Drawable modeButtonLine;
private ToolbarModeButton activeButton;
public Action<PlayMode> OnPlayModeChange;

View File

@ -11,7 +11,7 @@ namespace osu.Game.Overlays.Toolbar
{
internal class ToolbarOverlayToggleButton : ToolbarButton
{
private Box stateBackground;
private readonly Box stateBackground;
private OverlayContainer stateContainer;

View File

@ -11,7 +11,7 @@ namespace osu.Game.Overlays.Toolbar
internal class ToolbarUserArea : Container
{
public LoginOverlay LoginOverlay;
private ToolbarUserButton button;
private readonly ToolbarUserButton button;
public override RectangleF BoundingBox => button.BoundingBox;

View File

@ -14,7 +14,7 @@ namespace osu.Game.Overlays.Toolbar
{
internal class ToolbarUserButton : ToolbarButton, IOnlineComponent
{
private Avatar avatar;
private readonly Avatar avatar;
public ToolbarUserButton()
{

View File

@ -20,9 +20,12 @@ namespace osu.Game.Overlays
private const EasingTypes easing_show = EasingTypes.OutSine;
private const EasingTypes easing_hide = EasingTypes.InSine;
private Wave firstWave, secondWave, thirdWave, fourthWave;
private readonly Wave firstWave;
private readonly Wave secondWave;
private readonly Wave thirdWave;
private readonly Wave fourthWave;
private Container<Wave> wavesContainer;
private readonly Container<Wave> wavesContainer;
private readonly Container contentContainer;

View File

@ -72,7 +72,7 @@ namespace osu.Game.Screens.Backgrounds
private class BeatmapBackground : Background
{
private WorkingBeatmap beatmap;
private readonly WorkingBeatmap beatmap;
public BeatmapBackground(WorkingBeatmap beatmap)
{

View File

@ -19,14 +19,14 @@ namespace osu.Game.Screens
{
public class ScreenWhiteBox : OsuScreen
{
private BackButton popButton;
private readonly BackButton popButton;
private const double transition_time = 1000;
protected virtual IEnumerable<Type> PossibleChildren => null;
private Container textContainer;
private Box box;
private readonly Container textContainer;
private readonly Box box;
protected override BackgroundScreen CreateBackground() => new BackgroundScreenCustom(@"Backgrounds/bg2");

View File

@ -26,13 +26,13 @@ namespace osu.Game.Screens.Menu
/// </summary>
public class Button : Container, IStateful<ButtonState>
{
private Container iconText;
private Container box;
private Box boxHoverLayer;
private TextAwesome icon;
private string internalName;
private Action clickAction;
private Key triggerKey;
private readonly Container iconText;
private readonly Container box;
private readonly Box boxHoverLayer;
private readonly TextAwesome icon;
private readonly string internalName;
private readonly Action clickAction;
private readonly Key triggerKey;
private SampleChannel sampleClick;
protected override bool InternalContains(Vector2 screenSpacePos) => box.Contains(screenSpacePos);
@ -132,7 +132,7 @@ namespace osu.Game.Screens.Menu
icon.ScaleTo(1, 500, EasingTypes.OutElasticHalf);
double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
const double offset = 0; //(1 - Game.Audio.SyncBeatProgress) * duration;
double startTime = Time.Current + offset;
icon.RotateTo(10, offset, EasingTypes.InOutSine);

View File

@ -32,7 +32,7 @@ namespace osu.Game.Screens.Menu
private Toolbar toolbar;
private FlowContainerWithOrigin buttonFlow;
private readonly FlowContainerWithOrigin buttonFlow;
//todo: make these non-internal somehow.
internal const float BUTTON_AREA_HEIGHT = 100;
@ -41,16 +41,16 @@ namespace osu.Game.Screens.Menu
public const int EXIT_DELAY = 3000;
private OsuLogo osuLogo;
private Drawable iconFacade;
private Container buttonArea;
private Box buttonAreaBackground;
private readonly OsuLogo osuLogo;
private readonly Drawable iconFacade;
private readonly Container buttonArea;
private readonly Box buttonAreaBackground;
private Button backButton;
private Button settingsButton;
private readonly Button backButton;
private readonly Button settingsButton;
private List<Button> buttonsTopLevel = new List<Button>();
private List<Button> buttonsPlay = new List<Button>();
private readonly List<Button> buttonsTopLevel = new List<Button>();
private readonly List<Button> buttonsPlay = new List<Button>();
public ButtonSystem()
{

View File

@ -16,7 +16,7 @@ namespace osu.Game.Screens.Menu
internal class Disclaimer : OsuScreen
{
private Intro intro;
private TextAwesome icon;
private readonly TextAwesome icon;
private Color4 iconColour;
internal override bool ShowOverlays => false;

View File

@ -16,7 +16,7 @@ namespace osu.Game.Screens.Menu
{
public class Intro : OsuScreen
{
private OsuLogo logo;
private readonly OsuLogo logo;
/// <summary>
/// Whether we have loaded the menu previously.
@ -113,12 +113,12 @@ namespace osu.Game.Screens.Menu
//we also handle the exit transition.
seeya.Play();
double fadeOutTime = 2000;
const double fade_out_time = 2000;
Scheduler.AddDelayed(Exit, fadeOutTime);
Scheduler.AddDelayed(Exit, fade_out_time);
//don't want to fade out completely else we will stop running updates and shit will hit the fan.
Game.FadeTo(0.01f, fadeOutTime);
Game.FadeTo(0.01f, fade_out_time);
base.OnResuming(last);
}

View File

@ -22,11 +22,11 @@ namespace osu.Game.Screens.Menu
{
public class MainMenu : OsuScreen
{
private ButtonSystem buttons;
private readonly ButtonSystem buttons;
internal override bool ShowOverlays => buttons.State != MenuState.Initial;
private BackgroundScreen background;
private readonly BackgroundScreen background;
private Screen songSelect;
protected override BackgroundScreen CreateBackground() => background;

View File

@ -25,22 +25,22 @@ namespace osu.Game.Screens.Menu
{
public Color4 OsuPink = OsuColour.FromHex(@"e967a1");
private Sprite logo;
private CircularContainer logoContainer;
private Container logoBounceContainer;
private Container logoHoverContainer;
private readonly Sprite logo;
private readonly CircularContainer logoContainer;
private readonly Container logoBounceContainer;
private readonly Container logoHoverContainer;
private SampleChannel sampleClick;
private Container colourAndTriangles;
private readonly Container colourAndTriangles;
public Action Action;
public float SizeForFlow => logo == null ? 0 : logo.DrawSize.X * logo.Scale.X * logoBounceContainer.Scale.X * logoHoverContainer.Scale.X * 0.78f;
private Sprite ripple;
private readonly Sprite ripple;
private Container rippleContainer;
private readonly Container rippleContainer;
public bool Triangles
{
@ -62,7 +62,7 @@ namespace osu.Game.Screens.Menu
}
public bool Interactive = true;
private Box flashLayer;
private readonly Box flashLayer;
public OsuLogo()
{

View File

@ -106,7 +106,7 @@ namespace osu.Game.Screens.Play
public class Receptor : Drawable
{
private KeyCounterCollection target;
private readonly KeyCounterCollection target;
public Receptor(KeyCounterCollection target)
{

View File

@ -13,10 +13,10 @@ namespace osu.Game.Screens.Play.Pause
{
public class PauseProgressBar : Container
{
private Color4 fillColour = new Color4(221, 255, 255, 255);
private Color4 glowColour = new Color4(221, 255, 255, 150);
private readonly Color4 fillColour = new Color4(221, 255, 255, 255);
private readonly Color4 glowColour = new Color4(221, 255, 255, 150);
private Container fill;
private readonly Container fill;
private WorkingBeatmap current;
[BackgroundDependencyLoader]

View File

@ -42,10 +42,10 @@ namespace osu.Game.Screens.Play
public int RestartCount;
private double pauseCooldown = 1000;
private const double pause_cooldown = 1000;
private double lastPauseActionTime;
private bool canPause => Time.Current >= lastPauseActionTime + pauseCooldown;
private bool canPause => Time.Current >= lastPauseActionTime + pause_cooldown;
private IAdjustableClock sourceClock;
private IFrameBasedClock interpolatedSourceClock;

View File

@ -9,7 +9,7 @@ namespace osu.Game.Screens.Play
{
public class PlayerInputManager : PassThroughInputManager
{
private ManualClock clock = new ManualClock();
private readonly ManualClock clock = new ManualClock();
private IFrameBasedClock parentClock;
private ReplayInputHandler replayInputHandler;

Some files were not shown because too many files have changed in this diff Show More