Fix column lights positioned incorrectly

This commit is contained in:
smoogipoo 2020-04-01 16:05:52 +09:00
parent af408d511f
commit ff2c5b446e
5 changed files with 14 additions and 0 deletions

View File

@ -42,6 +42,10 @@ private void load(ISkinSource skin, IScrollingInfo scrollingInfo)
bool hasRightLine = rightLineWidth > 0 && skin.GetConfig<LegacySkinConfiguration.LegacySetting, decimal>(LegacySkinConfiguration.LegacySetting.Version)?.Value >= 2.4m
|| Stage == null || Column.Index == Stage.Columns.Count - 1;
float lightPosition = skin.GetConfig<LegacyManiaSkinConfigurationLookup, float>(
new LegacyManiaSkinConfigurationLookup(Stage?.Columns.Count ?? 4, LegacyManiaSkinConfigurationLookups.LightPosition))?.Value
?? 0;
InternalChildren = new Drawable[]
{
new Box
@ -67,6 +71,7 @@ private void load(ISkinSource skin, IScrollingInfo scrollingInfo)
{
Origin = Anchor.BottomCentre,
RelativeSizeAxes = Axes.Both,
Padding = new MarginPadding { Bottom = lightPosition },
Child = light = new Sprite
{
Anchor = Anchor.BottomCentre,

View File

@ -14,6 +14,7 @@ public class LegacyManiaSkinConfiguration
public readonly float[] ColumnWidth;
public float HitPosition = 124.8f; // (480 - 402) * 1.6f
public float LightPosition = 107.2f; // (480 - 413) * 1.6f
public bool ShowJudgementLine = true;
public LegacyManiaSkinConfiguration(int keys)

View File

@ -25,6 +25,7 @@ public enum LegacyManiaSkinConfigurationLookups
LeftLineWidth,
RightLineWidth,
HitPosition,
LightPosition,
HitTargetImage,
ShowJudgementLine,
KeyImage,

View File

@ -91,6 +91,10 @@ private void flushPendingLines()
currentConfig.HitPosition = (480 - float.Parse(pair.Value, CultureInfo.InvariantCulture)) * size_scale_factor;
break;
case "LightPosition":
currentConfig.LightPosition = (480 - float.Parse(pair.Value, CultureInfo.InvariantCulture)) * size_scale_factor;
break;
case "JudgementLine":
currentConfig.ShowJudgementLine = pair.Value == "1";
break;

View File

@ -141,6 +141,9 @@ public override IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup)
case LegacyManiaSkinConfigurationLookups.HitPosition:
return SkinUtils.As<TValue>(new Bindable<float>(existing.HitPosition));
case LegacyManiaSkinConfigurationLookups.LightPosition:
return SkinUtils.As<TValue>(new Bindable<float>(existing.LightPosition));
case LegacyManiaSkinConfigurationLookups.ShowJudgementLine:
return SkinUtils.As<TValue>(new Bindable<bool>(existing.ShowJudgementLine));
}