diff --git a/osu.Game/Overlays/Options/AudioDevicesOptions.cs b/osu.Game/Overlays/Options/AudioDevicesOptions.cs
new file mode 100644
index 0000000000..4f43bffb24
--- /dev/null
+++ b/osu.Game/Overlays/Options/AudioDevicesOptions.cs
@@ -0,0 +1,17 @@
+using System;
+using osu.Framework.Graphics.Sprites;
+
+namespace osu.Game.Overlays.Options
+{
+ public class AudioDevicesOptions : OptionsSubsection
+ {
+ public AudioDevicesOptions()
+ {
+ Header = "Devices";
+ Children = new[]
+ {
+ new SpriteText { Text = "Output device: TODO dropdown" }
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/AudioOptions.cs b/osu.Game/Overlays/Options/AudioOptions.cs
new file mode 100644
index 0000000000..3c348d1342
--- /dev/null
+++ b/osu.Game/Overlays/Options/AudioOptions.cs
@@ -0,0 +1,19 @@
+using System;
+using osu.Framework.Graphics;
+
+namespace osu.Game.Overlays.Options
+{
+ public class AudioOptions : OptionsSection
+ {
+ public AudioOptions()
+ {
+ Header = "Audio";
+ Children = new Drawable[]
+ {
+ new AudioDevicesOptions(),
+ new VolumeOptions(),
+ new OffsetAdjustmentOptions(),
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/DetailSettings.cs b/osu.Game/Overlays/Options/DetailOptions.cs
similarity index 90%
rename from osu.Game/Overlays/Options/DetailSettings.cs
rename to osu.Game/Overlays/Options/DetailOptions.cs
index b25966cce8..4ef89a3b96 100644
--- a/osu.Game/Overlays/Options/DetailSettings.cs
+++ b/osu.Game/Overlays/Options/DetailOptions.cs
@@ -5,9 +5,9 @@ using osu.Framework.Graphics.UserInterface;
namespace osu.Game.Overlays.Options
{
- public class DetailSettings : OptionsSubsection
+ public class DetailOptions : OptionsSubsection
{
- public DetailSettings()
+ public DetailOptions()
{
Header = "Detail Settings";
Children = new Drawable[]
diff --git a/osu.Game/Overlays/Options/GameplayOptions.cs b/osu.Game/Overlays/Options/GameplayOptions.cs
new file mode 100644
index 0000000000..23d4a4b3d7
--- /dev/null
+++ b/osu.Game/Overlays/Options/GameplayOptions.cs
@@ -0,0 +1,18 @@
+using System;
+using osu.Framework.Graphics;
+
+namespace osu.Game.Overlays.Options
+{
+ public class GameplayOptions : OptionsSection
+ {
+ public GameplayOptions()
+ {
+ Header = "Gameplay";
+ Children = new Drawable[]
+ {
+ new GeneralGameplayOptions(),
+ new SongSelectGameplayOptions(),
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/GeneralGameplayOptions.cs b/osu.Game/Overlays/Options/GeneralGameplayOptions.cs
new file mode 100644
index 0000000000..7755f38536
--- /dev/null
+++ b/osu.Game/Overlays/Options/GeneralGameplayOptions.cs
@@ -0,0 +1,26 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+using osu.Framework.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class GeneralGameplayOptions : OptionsSubsection
+ {
+ public GeneralGameplayOptions()
+ {
+ Header = "General";
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "Background dim: TODO slider" },
+ new SpriteText { Text = "Progress display: TODO dropdown" },
+ new SpriteText { Text = "Score meter type: TODO dropdown" },
+ new SpriteText { Text = "Score meter size: TODO slider" },
+ new BasicCheckBox { LabelText = "Always show key overlay" },
+ new BasicCheckBox { LabelText = "Show approach circle on first \"Hidden\" object" },
+ new BasicCheckBox { LabelText = "Scale osu!mania scroll speed with BPM" },
+ new BasicCheckBox { LabelText = "Remember osu!mania scroll speed per beatmap" },
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/GraphicsOptions.cs b/osu.Game/Overlays/Options/GraphicsOptions.cs
index bb83687077..b855f07a1d 100644
--- a/osu.Game/Overlays/Options/GraphicsOptions.cs
+++ b/osu.Game/Overlays/Options/GraphicsOptions.cs
@@ -12,7 +12,7 @@ namespace osu.Game.Overlays.Options
{
new RendererOptions(),
new LayoutOptions(),
- new DetailSettings(),
+ new DetailOptions(),
new MainMenuOptions(),
new SongSelectGraphicsOptions(),
};
diff --git a/osu.Game/Overlays/Options/InputOptions.cs b/osu.Game/Overlays/Options/InputOptions.cs
new file mode 100644
index 0000000000..0886ab6610
--- /dev/null
+++ b/osu.Game/Overlays/Options/InputOptions.cs
@@ -0,0 +1,20 @@
+using System;
+using osu.Framework.Graphics;
+
+namespace osu.Game.Overlays.Options
+{
+ public class InputOptions : OptionsSection
+ {
+ public InputOptions()
+ {
+ Header = "Input";
+ Children = new Drawable[]
+ {
+ new MouseOptions(),
+ new KeyboardOptions(),
+ new OtherInputOptions(),
+ };
+ }
+ }
+}
+
diff --git a/osu.Game/Overlays/Options/KeyboardOptions.cs b/osu.Game/Overlays/Options/KeyboardOptions.cs
new file mode 100644
index 0000000000..16c3b54cd6
--- /dev/null
+++ b/osu.Game/Overlays/Options/KeyboardOptions.cs
@@ -0,0 +1,27 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Game.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class KeyboardOptions : OptionsSubsection
+ {
+ public KeyboardOptions()
+ {
+ Header = "Keyboard";
+ Children = new Drawable[]
+ {
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "Change keyboard bindings"
+ },
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "osu!mania layout"
+ }
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/MouseOptions.cs b/osu.Game/Overlays/Options/MouseOptions.cs
new file mode 100644
index 0000000000..c82d734440
--- /dev/null
+++ b/osu.Game/Overlays/Options/MouseOptions.cs
@@ -0,0 +1,25 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+using osu.Framework.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class MouseOptions : OptionsSubsection
+ {
+ public MouseOptions()
+ {
+ Header = "Mouse";
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "Sensitivity: TODO slider" },
+ new BasicCheckBox { LabelText = "Raw input" },
+ new BasicCheckBox { LabelText = "Map absolute raw input to the osu! window" },
+ new SpriteText { Text = "Confine mouse cursor: TODO dropdown" },
+ new BasicCheckBox { LabelText = "Disable mouse wheel in play mode" },
+ new BasicCheckBox { LabelText = "Disable mouse buttons in play mode" },
+ new BasicCheckBox { LabelText = "Cursor ripples" },
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/OffsetAdjustmentOptions.cs b/osu.Game/Overlays/Options/OffsetAdjustmentOptions.cs
new file mode 100644
index 0000000000..79fc48c46a
--- /dev/null
+++ b/osu.Game/Overlays/Options/OffsetAdjustmentOptions.cs
@@ -0,0 +1,24 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+using osu.Game.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class OffsetAdjustmentOptions : OptionsSubsection
+ {
+ public OffsetAdjustmentOptions()
+ {
+ Header = "Offset Adjustment";
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "Universal Offset: TODO slider" },
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "Offset wizard"
+ }
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/OtherInputOptions.cs b/osu.Game/Overlays/Options/OtherInputOptions.cs
new file mode 100644
index 0000000000..e4383ee523
--- /dev/null
+++ b/osu.Game/Overlays/Options/OtherInputOptions.cs
@@ -0,0 +1,20 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class OtherInputOptions : OptionsSubsection
+ {
+ public OtherInputOptions()
+ {
+ Header = "Other";
+ Children = new Drawable[]
+ {
+ new BasicCheckBox { LabelText = "OS TabletPC support" },
+ new BasicCheckBox { LabelText = "Wiimote/TaTaCon Drum Support" },
+ };
+ }
+ }
+}
+
diff --git a/osu.Game/Overlays/Options/SkinOptions.cs b/osu.Game/Overlays/Options/SkinOptions.cs
new file mode 100644
index 0000000000..c3ad00d5fc
--- /dev/null
+++ b/osu.Game/Overlays/Options/SkinOptions.cs
@@ -0,0 +1,49 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+using osu.Framework.Graphics.UserInterface;
+using osu.Game.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class SkinOptions : OptionsSection
+ {
+ public SkinOptions()
+ {
+ Header = "Skin";
+ Children = new Drawable[]
+ {
+ new OptionsSubsection
+ {
+ Header = "Skin",
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "TODO: Skin preview textures" },
+ new SpriteText { Text = "Current skin: TODO dropdown" },
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "Preview gameplay",
+ },
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "Open skin folder",
+ },
+ new OsuButton
+ {
+ RelativeSizeAxes = Axes.X,
+ Text = "Export as .osk",
+ },
+ new BasicCheckBox { LabelText = "Ignore all beatmap skins" },
+ new BasicCheckBox { LabelText = "Use skin's sound samples" },
+ new BasicCheckBox { LabelText = "Use Taiko skin for Taiko mode" },
+ new BasicCheckBox { LabelText = "Always use skin cursor" },
+ new SpriteText { Text = "Cursor size: TODO slider" },
+ new BasicCheckBox { LabelText = "Automatic cursor size" },
+ }
+ }
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/Options/SongSelectGameplayOptions.cs b/osu.Game/Overlays/Options/SongSelectGameplayOptions.cs
new file mode 100644
index 0000000000..9819406389
--- /dev/null
+++ b/osu.Game/Overlays/Options/SongSelectGameplayOptions.cs
@@ -0,0 +1,20 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+
+namespace osu.Game.Overlays.Options
+{
+ public class SongSelectGameplayOptions : OptionsSubsection
+ {
+ public SongSelectGameplayOptions()
+ {
+ Header = "Song Select";
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "Display beatmaps from: TODO slider" },
+ new SpriteText { Text = "up to: TODO slider" },
+ };
+ }
+ }
+}
+
diff --git a/osu.Game/Overlays/Options/VolumeOptions.cs b/osu.Game/Overlays/Options/VolumeOptions.cs
new file mode 100644
index 0000000000..93d4568877
--- /dev/null
+++ b/osu.Game/Overlays/Options/VolumeOptions.cs
@@ -0,0 +1,22 @@
+using System;
+using osu.Framework.Graphics;
+using osu.Framework.Graphics.Sprites;
+using osu.Framework.Graphics.UserInterface;
+
+namespace osu.Game.Overlays.Options
+{
+ public class VolumeOptions : OptionsSubsection
+ {
+ public VolumeOptions()
+ {
+ Header = "Volume";
+ Children = new Drawable[]
+ {
+ new SpriteText { Text = "Master: TODO slider" },
+ new SpriteText { Text = "Music: TODO slider" },
+ new SpriteText { Text = "Effect: TODO slider" },
+ new BasicCheckBox { LabelText = "Ignore beatmap hitsounds" }
+ };
+ }
+ }
+}
\ No newline at end of file
diff --git a/osu.Game/Overlays/OptionsOverlay.cs b/osu.Game/Overlays/OptionsOverlay.cs
index c3630f590c..da9b4a412a 100644
--- a/osu.Game/Overlays/OptionsOverlay.cs
+++ b/osu.Game/Overlays/OptionsOverlay.cs
@@ -83,6 +83,10 @@ namespace osu.Game.Overlays
},
new GeneralOptions(storage, api),
new GraphicsOptions(),
+ new GameplayOptions(),
+ new AudioOptions(),
+ new SkinOptions(),
+ new InputOptions(),
}
}
}
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index e32f8d001d..1b83b89594 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -204,9 +204,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+