From 52fdeeb4911c390a826aef8d6b15378bc8ae0d2e Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Mon, 26 Jun 2023 16:20:51 +0900
Subject: [PATCH] Improve positioning and positioning code clarity for argon /
 triangles implementations

---
 osu.Game/Skinning/ArgonSkin.cs     | 11 ++++++++---
 osu.Game/Skinning/TrianglesSkin.cs |  5 ++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/osu.Game/Skinning/ArgonSkin.cs b/osu.Game/Skinning/ArgonSkin.cs
index 48326bfe60..3570922a9e 100644
--- a/osu.Game/Skinning/ArgonSkin.cs
+++ b/osu.Game/Skinning/ArgonSkin.cs
@@ -168,14 +168,19 @@ namespace osu.Game.Skinning
 
                                     if (songProgress != null)
                                     {
-                                        songProgress.Position = new Vector2(0, -10);
+                                        const float padding = 10;
+
+                                        songProgress.Position = new Vector2(0, -padding);
                                         songProgress.Scale = new Vector2(0.9f, 1);
 
-                                        if (keyCounter != null)
+                                        if (keyCounter != null && hitError != null)
                                         {
+                                            // Hard to find this at runtime, so taken from the most expanded state during replay.
+                                            const float song_progress_offset_height = 36 + padding;
+
                                             keyCounter.Anchor = Anchor.BottomLeft;
                                             keyCounter.Origin = Anchor.BottomLeft;
-                                            keyCounter.Position = new Vector2(50, -57);
+                                            keyCounter.Position = new Vector2(hitError.Width + padding, -(padding * 2 + song_progress_offset_height));
                                         }
                                     }
                                 }
diff --git a/osu.Game/Skinning/TrianglesSkin.cs b/osu.Game/Skinning/TrianglesSkin.cs
index a4cfef63d4..a68a7fd5b9 100644
--- a/osu.Game/Skinning/TrianglesSkin.cs
+++ b/osu.Game/Skinning/TrianglesSkin.cs
@@ -148,9 +148,12 @@ namespace osu.Game.Skinning
                                 {
                                     const float padding = 10;
 
+                                    // Hard to find this at runtime, so taken from the most expanded state during replay.
+                                    const float song_progress_offset_height = 73;
+
                                     keyCounter.Anchor = Anchor.BottomRight;
                                     keyCounter.Origin = Anchor.BottomRight;
-                                    keyCounter.Position = new Vector2(-padding, -(60 + padding));
+                                    keyCounter.Position = new Vector2(-padding, -(song_progress_offset_height + padding));
                                 }
                             })
                             {