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 @@ - + + + + + + + + + + + + +