From b91ff8a5c514eb5bf58baf145a6e5de41238be89 Mon Sep 17 00:00:00 2001 From: qinvvv <88759424+qinvvv@users.noreply.github.com> Date: Thu, 18 Sep 2025 22:53:25 -0300 Subject: [PATCH] Fix osu!mania legacy skin WidthForNoteHeightScale not being used (#35050) * Add osu!mania legacy skin widthForNoteHeightScale * Ensure WidthForNoteHeightScale correctly defaults to MinimumColumnWidth --- .../Skinning/Legacy/LegacyNotePiece.cs | 9 ++++----- osu.Game/Skinning/LegacySkin.cs | 6 ++++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/osu.Game.Rulesets.Mania/Skinning/Legacy/LegacyNotePiece.cs b/osu.Game.Rulesets.Mania/Skinning/Legacy/LegacyNotePiece.cs index 4291ec3c13..c9c655ef7d 100644 --- a/osu.Game.Rulesets.Mania/Skinning/Legacy/LegacyNotePiece.cs +++ b/osu.Game.Rulesets.Mania/Skinning/Legacy/LegacyNotePiece.cs @@ -22,7 +22,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Legacy private Drawable noteAnimation = null!; - private float? minimumColumnWidth; + private float? widthForNoteHeightScale; public LegacyNotePiece() { @@ -33,7 +33,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Legacy [BackgroundDependencyLoader] private void load(ISkinSource skin, IScrollingInfo scrollingInfo) { - minimumColumnWidth = skin.GetConfig(new ManiaSkinConfigurationLookup(LegacyManiaSkinConfigurationLookups.MinimumColumnWidth))?.Value; + widthForNoteHeightScale = skin.GetConfig(new ManiaSkinConfigurationLookup(LegacyManiaSkinConfigurationLookups.WidthForNoteHeightScale))?.Value; InternalChild = directionContainer = new Container { @@ -60,9 +60,8 @@ namespace osu.Game.Rulesets.Mania.Skinning.Legacy if (texture != null) { - // The height is scaled to the minimum column width, if provided. - float minimumWidth = minimumColumnWidth ?? DrawWidth; - noteAnimation.Scale = Vector2.Divide(new Vector2(DrawWidth, minimumWidth), texture.DisplayWidth); + float noteHeight = widthForNoteHeightScale ?? DrawWidth; + noteAnimation.Scale = Vector2.Divide(new Vector2(DrawWidth, noteHeight), texture.DisplayWidth); } } diff --git a/osu.Game/Skinning/LegacySkin.cs b/osu.Game/Skinning/LegacySkin.cs index b648299787..11b3b5c71d 100644 --- a/osu.Game/Skinning/LegacySkin.cs +++ b/osu.Game/Skinning/LegacySkin.cs @@ -145,8 +145,10 @@ namespace osu.Game.Skinning return SkinUtils.As(new Bindable(existing.ColumnWidth[maniaLookup.ColumnIndex.Value])); case LegacyManiaSkinConfigurationLookups.WidthForNoteHeightScale: - Debug.Assert(maniaLookup.ColumnIndex != null); - return SkinUtils.As(new Bindable(existing.WidthForNoteHeightScale)); + float width = existing.WidthForNoteHeightScale; + if (width <= 0) + width = existing.MinimumColumnWidth; + return SkinUtils.As(new Bindable(width)); case LegacyManiaSkinConfigurationLookups.HitPosition: return SkinUtils.As(new Bindable(existing.HitPosition));