From 2f618b7f35514f1025d4750cb3726e670f4aa2d8 Mon Sep 17 00:00:00 2001
From: Salman Ahmed <frenzibyte@gmail.com>
Date: Sat, 20 Jan 2024 00:28:26 +0300
Subject: [PATCH] Change taiko hit position to always match stable

---
 osu.Game.Rulesets.Taiko/Mods/TaikoModClassic.cs |  3 ---
 osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs    | 14 +++++---------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/osu.Game.Rulesets.Taiko/Mods/TaikoModClassic.cs b/osu.Game.Rulesets.Taiko/Mods/TaikoModClassic.cs
index cdeaafde10..f63d6c2673 100644
--- a/osu.Game.Rulesets.Taiko/Mods/TaikoModClassic.cs
+++ b/osu.Game.Rulesets.Taiko/Mods/TaikoModClassic.cs
@@ -16,9 +16,6 @@ namespace osu.Game.Rulesets.Taiko.Mods
         {
             var drawableTaikoRuleset = (DrawableTaikoRuleset)drawableRuleset;
             drawableTaikoRuleset.LockPlayfieldAspectRange.Value = false;
-
-            var playfield = (TaikoPlayfield)drawableRuleset.Playfield;
-            playfield.ClassicHitTargetPosition.Value = true;
         }
 
         public void ApplyToDrawableHitObject(DrawableHitObject drawable)
diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs
index 95907bcb8b..0510f08068 100644
--- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs
+++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs
@@ -5,7 +5,6 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using osu.Framework.Allocation;
-using osu.Framework.Bindables;
 using osu.Framework.Graphics;
 using osu.Framework.Graphics.Containers;
 using osu.Framework.Graphics.Primitives;
@@ -33,11 +32,6 @@ namespace osu.Game.Rulesets.Taiko.UI
 
         public const float INPUT_DRUM_WIDTH = 180f;
 
-        /// <summary>
-        /// Whether the hit target should be nudged further towards the left area, matching the stable "classic" position.
-        /// </summary>
-        public Bindable<bool> ClassicHitTargetPosition = new BindableBool();
-
         public Container UnderlayElements { get; private set; } = null!;
 
         private Container<HitExplosion> hitExplosionContainer = null!;
@@ -62,6 +56,7 @@ namespace osu.Game.Rulesets.Taiko.UI
         private void load(OsuColour colours)
         {
             const float hit_target_width = BASE_HEIGHT;
+            const float hit_target_offset = -24f;
 
             inputDrum = new InputDrum
             {
@@ -106,6 +101,7 @@ namespace osu.Game.Rulesets.Taiko.UI
                             Name = "Elements behind hit objects",
                             RelativeSizeAxes = Axes.Y,
                             Width = hit_target_width,
+                            X = hit_target_offset,
                             Children = new[]
                             {
                                 new SkinnableDrawable(new TaikoSkinComponentLookup(TaikoSkinComponents.KiaiGlow), _ => Empty())
@@ -126,7 +122,7 @@ namespace osu.Game.Rulesets.Taiko.UI
                         {
                             Name = "Bar line content",
                             RelativeSizeAxes = Axes.Both,
-                            Padding = new MarginPadding { Left = hit_target_width / 2 },
+                            Padding = new MarginPadding { Left = hit_target_width / 2 + hit_target_offset },
                             Children = new Drawable[]
                             {
                                 UnderlayElements = new Container
@@ -140,7 +136,7 @@ namespace osu.Game.Rulesets.Taiko.UI
                         {
                             Name = "Masked hit objects content",
                             RelativeSizeAxes = Axes.Both,
-                            Padding = new MarginPadding { Left = hit_target_width / 2 },
+                            Padding = new MarginPadding { Left = hit_target_width / 2 + hit_target_offset },
                             Masking = true,
                             Child = HitObjectContainer,
                         },
@@ -148,7 +144,7 @@ namespace osu.Game.Rulesets.Taiko.UI
                         {
                             Name = "Overlay content",
                             RelativeSizeAxes = Axes.Both,
-                            Padding = new MarginPadding { Left = hit_target_width / 2 },
+                            Padding = new MarginPadding { Left = hit_target_width / 2 + hit_target_offset },
                             Children = new Drawable[]
                             {
                                 drumRollHitContainer = new DrumRollHitContainer(),