diff --git a/Protobuf/Protobuf.csproj b/Protobuf/Protobuf.csproj index 9a3419d..ebf7afe 100644 --- a/Protobuf/Protobuf.csproj +++ b/Protobuf/Protobuf.csproj @@ -6,6 +6,6 @@ - + diff --git a/Qwilight/Assets/Language.json b/Qwilight/Assets/Language.json index dfb1c70..167747b 100644 --- a/Qwilight/Assets/Language.json +++ b/Qwilight/Assets/Language.json @@ -369,7 +369,7 @@ }, "AvatarHandledYell1Text": { "ko-KR": "퍼펙트 ({0})", - "en-US": "Perfect ({2})" + "en-US": "Perfect ({0})" }, "AvatarID": { "ko-KR": "아이디", @@ -1235,6 +1235,10 @@ "ko-KR": "아직 안 함", "en-US": "Not yet." }, + "HandledYell1Text": { + "ko-KR": "퍼펙트", + "en-US": "Perfect" + }, "HandleFailedAudioCountText": { "ko-KR": "노트를 놓칠 때 반응할 콤보를 설정합니다.", "en-US": "Set a combo to respond to when you miss your note." diff --git a/Qwilight/Assets/UI/@Default/@Default.zip b/Qwilight/Assets/UI/@Default/@Default.zip index 3d29998..de41d7a 100644 --- a/Qwilight/Assets/UI/@Default/@Default.zip +++ b/Qwilight/Assets/UI/@Default/@Default.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:544f07ec0dfd2af52d766cf0ab8dcec830b59fc4091a7a11d64c40cb5f2d52a8 -size 77388429 +oid sha256:d57e23a022ff19e7afecda8f5b9c2c328a888eb659cfdf6e7b947d1d38673c3a +size 86424615 diff --git a/Qwilight/Assets/UI/Default/Default.yaml b/Qwilight/Assets/UI/Default/Default.yaml index 9dd3be7..3794bf7 100644 --- a/Qwilight/Assets/UI/Default/Default.yaml +++ b/Qwilight/Assets/UI/Default/Default.yaml @@ -47,12 +47,14 @@ last-enlarged-band-loop-frame: NoteHitFrame(0.75) judgment-frame: 25 - band!-frame: 50 last-frame: 50 + band!-frame: 50 + yell!-frame: 50 judgment-framerate: 60 - band!-framerate: 60 last-framerate: 60 + band!-framerate: 60 + yell!-framerate: 60 input-frame: 1 input-framerate: 60 @@ -143,6 +145,7 @@ alt-judgment-points: 2 alt-last: 2 alt-band!: 2 + alt-yell!: 2 alt-wall-0: 2 alt-wall-1: 2 alt-audio-multiplier: 2 @@ -262,8 +265,8 @@ # 버튼 아래 사각형 영역 paintProperty2: MainPosition(0), JudgmentMainPosition(140), P1BuiltLength(1), 76, 2, 1, 60, 0 - # 움직이는 판정 비율 막대기 - paintProperty3: MainPosition(0), JudgmentMainPosition(120), P1BuiltLength(1), 20, 2, 20, 60, 0 + # 판정 비율 막대기 + paintProperty3: MainPosition(0), JudgmentMainPosition(120), P1BuiltLength(1), 20, 2, 1, 60, 0 # 판정 비주얼라이저 기준점 paintProperty4: PaintProperty4Position0(), PaintProperty4Position1(), 7, 4, 2, 1, 60, 0, 43 @@ -324,6 +327,12 @@ band!Length: P1BuiltLength(1.0) band!Height: JudgmentMainPosition(-5) + yell!System: 0 + yell!Position0: MainPosition(0.0) + yell!Position1: 0 + yell!Length: P1BuiltLength(1.0) + yell!Height: JudgmentMainPosition(-5) + judgmentPointsSystem: 3 judgmentPointsPosition0: MainPosition(0) judgmentPointsPosition1: JudgmentMainPosition(125) diff --git a/Qwilight/Assets/UI/Default/Default.zip b/Qwilight/Assets/UI/Default/Default.zip index 4cdb13c..8d2bbf6 100644 --- a/Qwilight/Assets/UI/Default/Default.zip +++ b/Qwilight/Assets/UI/Default/Default.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c94eb88a355a1bb64512407ae01c44f2a626058082f9156b6dc29481c028783 -size 21128806 +oid sha256:72310c283721379866ed753b02a2fb3b654685a2c47cdf8bb77b32ee7b5aa6ac +size 21371064 diff --git a/Qwilight/Compute/DefaultCompute.cs b/Qwilight/Compute/DefaultCompute.cs index e0c330b..fd5776b 100644 --- a/Qwilight/Compute/DefaultCompute.cs +++ b/Qwilight/Compute/DefaultCompute.cs @@ -3497,7 +3497,6 @@ judgmentLength = DrawingComponentValue.lastLength; judgmentHeight = DrawingComponentValue.lastHeight; altJudgment = DrawingComponentValue.altLast; - HandleUIAudio("Last"); break; case LastStatus.Band1: judged = Component.Judged.Band1; @@ -3509,7 +3508,6 @@ judgmentLength = DrawingComponentValue.band1Length; judgmentHeight = DrawingComponentValue.band1Height; altJudgment = DrawingComponentValue.altBand1; - HandleUIAudio("Band!"); break; case LastStatus.Yell1: judged = Component.Judged.Yell1; @@ -3521,7 +3519,6 @@ judgmentLength = DrawingComponentValue.yell1Length; judgmentHeight = DrawingComponentValue.yell1Height; altJudgment = DrawingComponentValue.altYell1; - HandleUIAudio("Yell!"); break; } if (!Has2P || altJudgment != 3) diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj index 08fd02c..52a4418 100644 --- a/Qwilight/Qwilight.csproj +++ b/Qwilight/Qwilight.csproj @@ -42,12 +42,12 @@ - + - + all diff --git a/Qwilight/System/BaseUI/BaseUI.cs b/Qwilight/System/BaseUI/BaseUI.cs index e8dadf8..74fa834 100644 --- a/Qwilight/System/BaseUI/BaseUI.cs +++ b/Qwilight/System/BaseUI/BaseUI.cs @@ -123,9 +123,9 @@ public HandledDrawingItem?[] InputModeDrawings { get; } = new HandledDrawingItem?[17]; - public ImageSource[] HandledWallDrawings { get; } = new ImageSource[8]; + public ImageSource[] HandledWallDrawings { get; } = new ImageSource[9]; - public ImageSource[] HandledWallCommentDrawings { get; } = new ImageSource[8]; + public ImageSource[] HandledWallCommentDrawings { get; } = new ImageSource[9]; public ImageSource[] DefaultEntryDrawings { get; } = new ImageSource[5]; @@ -2054,10 +2054,13 @@ QuitDrawings[i][1] ??= QuitDrawings[i][0]; } + HandledWallDrawings[(int)BaseNoteFile.Handled.Yell1] ??= HandledWallDrawings[(int)BaseNoteFile.Handled.Band1]; + for (var i = (int)BaseNoteFile.Handled.AssistClear; i >= (int)BaseNoteFile.Handled.Not; --i) { HandledWallCommentDrawings[i] ??= HandledWallDrawings[i]; } + HandledWallCommentDrawings[(int)BaseNoteFile.Handled.Yell1] ??= HandledWallCommentDrawings[(int)BaseNoteFile.Handled.Band1]; for (var i = PaintProperties.Length - 1; i >= 0; --i) { diff --git a/Qwilight/System/Configure/Configure.cs b/Qwilight/System/Configure/Configure.cs index e67ec36..ed0a5c8 100644 --- a/Qwilight/System/Configure/Configure.cs +++ b/Qwilight/System/Configure/Configure.cs @@ -3373,10 +3373,6 @@ { FlowValues = true; } - if (isInit || Utility.IsLowerDate(Date, 1, 16, 14)) - { - Array.Fill(InputWantHandled, true); - } if (isInit || Utility.IsLowerDate(Date, 1, 16, 16)) { LazyGCV2 = 0L; @@ -3395,6 +3391,7 @@ if (isInit || Utility.IsLowerDate(Date, 1, 16, 19)) { InputWantHandled = new bool[9]; + Array.Fill(InputWantHandled, true); } if (!UIConfigureValuesV2.ContainsKey(UIItemValue.Title)) { diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs index 9836ada..eacf5cc 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs @@ -311,6 +311,7 @@ public string HandledHigherClearText { get; set; } public string HandledHighestClearText { get; set; } public string HandledNotText { get; set; } + public string HandledYell1Text { get; set; } public string HandleFailedAudioCountText { get; set; } public string HandleFailedAudioText { get; set; } public string HandleInputAudioContents { get; set; } diff --git a/Qwilight/System/UI/UI.cs b/Qwilight/System/UI/UI.cs index 99beb6e..c31ada9 100644 --- a/Qwilight/System/UI/UI.cs +++ b/Qwilight/System/UI/UI.cs @@ -4,6 +4,7 @@ using Microsoft.Graphics.Canvas.Text; using Microsoft.UI; using MoonSharp.Interpreter; +using MoonSharp.Interpreter.Interop.StandardDescriptors.HardwiredDescriptors; using Qwilight.Note; using Qwilight.PaintComponent; using Qwilight.UIComponent; @@ -436,11 +437,11 @@ SaveValueMap(pointNode, "binLength"); SaveValueMap(pointNode, "binHeight"); - SaveValueMapAsDefaultID("stopPointDrawingLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "stopPointDrawingLength", "binLength"); - SaveSplitValueMap("floatingNotePosition0", 0.0); - SaveSplitValueMap("floatingNoteLength", 0.0); - SaveSplitValueMap("slashNotePosition0", 0.0); + SaveSplitValueMap(pointNode, "floatingNotePosition0", 0.0); + SaveSplitValueMap(pointNode, "floatingNoteLength", 0.0); + SaveSplitValueMap(pointNode, "slashNotePosition0", 0.0); SaveValueMap(pointNode, "judgmentMainPosition"); @@ -448,7 +449,7 @@ SaveValueMap(pointNode, "mediaPosition1", 0.0); SaveValueMap(pointNode, "mediaLength", Component.StandardLength); SaveValueMap(pointNode, "mediaHeight", Component.StandardHeight); - SaveAltMap("alt-media", 0); + SaveAltMap(lambdaNode, "alt-media", 0); SaveValueMap(pointNode, "titlePosition0"); SaveValueMap(pointNode, "titlePosition1"); @@ -456,7 +457,7 @@ SaveValueMap(pointNode, "titleHeight"); SaveIntMap(pointNode, "titleSystem0"); SaveIntMap(pointNode, "titleSystem1", 2); - SaveAltMap("alt-title", 0); + SaveAltMap(lambdaNode, "alt-title", 0); SaveValueMap(pointNode, "artistPosition0"); SaveValueMap(pointNode, "artistPosition1"); @@ -464,7 +465,7 @@ SaveValueMap(pointNode, "artistHeight"); SaveIntMap(pointNode, "artistSystem0"); SaveIntMap(pointNode, "artistSystem1", 2); - SaveAltMap("alt-artist", 0); + SaveAltMap(lambdaNode, "alt-artist", 0); SaveValueMap(pointNode, "genrePosition0"); SaveValueMap(pointNode, "genrePosition1"); @@ -472,7 +473,7 @@ SaveValueMap(pointNode, "genreHeight"); SaveIntMap(pointNode, "genreSystem0"); SaveIntMap(pointNode, "genreSystem1"); - SaveAltMap("alt-genre", 0); + SaveAltMap(lambdaNode, "alt-genre", 0); SaveValueMap(pointNode, "levelTextPosition0"); SaveValueMap(pointNode, "levelTextPosition1"); @@ -480,7 +481,7 @@ SaveValueMap(pointNode, "levelTextHeight"); SaveIntMap(pointNode, "levelTextSystem0"); SaveIntMap(pointNode, "levelTextSystem1"); - SaveAltMap("alt-level-text", 0); + SaveAltMap(lambdaNode, "alt-level-text", 0); SaveValueMap(pointNode, "wantLevelPosition0"); SaveValueMap(pointNode, "wantLevelPosition1"); @@ -488,7 +489,7 @@ SaveValueMap(pointNode, "wantLevelHeight"); SaveIntMap(pointNode, "wantLevelSystem0"); SaveIntMap(pointNode, "wantLevelSystem1"); - SaveAltMap("alt-want-level", 0); + SaveAltMap(lambdaNode, "alt-want-level", 0); SaveValueMap(pointNode, "audioVisualizerPosition0", 0.0); SaveValueMap(pointNode, "audioVisualizerPosition1", 0.0); @@ -507,35 +508,35 @@ SaveValueMap(pointNode, "mainWall0Height", 720.0); SaveValueMap(pointNode, "mainWall1Position1"); SaveValueMap(pointNode, "mainWall1Height", 720.0); - SaveAltMap("alt-wall-0", 2); - SaveAltMap("alt-wall-1", 2); + SaveAltMap(lambdaNode, "alt-wall-0", 2); + SaveAltMap(lambdaNode, "alt-wall-1", 2); SaveIntMap(frameNode, "main-frame"); SaveValueMap(frameNode, "main-framerate"); SaveValueMap(pointNode, "mainPosition1"); SaveValueMap(pointNode, "mainHeight", 720.0); - SaveSplitValueMap("autoInputPosition1"); - SaveSplitValueMap("autoInputHeight", 720.0); + SaveSplitValueMap(pointNode, "autoInputPosition1"); + SaveSplitValueMap(pointNode, "autoInputHeight", 720.0); SaveIntMap(pointNode, "hitPointsSystem"); SaveValueMap(pointNode, "hitPointsPosition0"); SaveValueMap(pointNode, "hitPointsPosition1"); SaveValueMap(pointNode, "hitPointsLength"); SaveValueMap(pointNode, "hitPointsHeight"); - SaveAltMap("alt-hit-points", 2); + SaveAltMap(lambdaNode, "alt-hit-points", 2); SaveIntMap(frameNode, "note-frame"); SaveValueMap(frameNode, "note-framerate"); - SaveSplitValueMap("noteLength"); - SaveSplitValueMap("noteHeight"); - SaveSplitValueMap("noteHeightJudgment"); - SaveSplitValueMap("longNoteTailEdgeHeight"); - SaveSplitValueMap("longNoteFrontEdgeHeight"); - SaveSplitValueMap("longNoteTailEdgePosition"); - SaveSplitValueMap("longNoteFrontEdgePosition"); - SaveSplitValueMap("longNoteTailContentsHeight"); - SaveSplitValueMap("longNoteFrontContentsHeight"); + SaveSplitValueMap(pointNode, "noteLength"); + SaveSplitValueMap(pointNode, "noteHeight"); + SaveSplitValueMap(pointNode, "noteHeightJudgment"); + SaveSplitValueMap(pointNode, "longNoteTailEdgeHeight"); + SaveSplitValueMap(pointNode, "longNoteFrontEdgeHeight"); + SaveSplitValueMap(pointNode, "longNoteTailEdgePosition"); + SaveSplitValueMap(pointNode, "longNoteFrontEdgePosition"); + SaveSplitValueMap(pointNode, "longNoteTailContentsHeight"); + SaveSplitValueMap(pointNode, "longNoteFrontContentsHeight"); MaintainLongNoteFrontEdge = Utility.ToBool(Utility.GetText(lambdaNode, "maintainLongNoteFrontEdge", bool.FalseString)); MaintainAutoInput = Utility.ToBool(Utility.GetText(lambdaNode, "maintainAutoInput", bool.TrueString)); LoopingMain = Utility.ToInt32(Utility.GetText(lambdaNode, "loopingMain", 0.ToString())); @@ -554,10 +555,10 @@ SaveIntMap(frameNode, "input-frame"); SaveValueMap(frameNode, "input-framerate"); - SaveSplitValueMap("inputPosition0"); - SaveSplitValueMapAsDefaultID("inputPosition1", "judgmentMainPosition"); - SaveSplitValueMap("inputLength"); - SaveSplitValueMapAsDefaultID("inputHeight", "judgmentMainPosition", value => 720.0 - value); + SaveSplitValueMap(pointNode, "inputPosition0"); + SaveSplitValueMapAsDefaultID(pointNode, "inputPosition1", "judgmentMainPosition"); + SaveSplitValueMap(pointNode, "inputLength"); + SaveSplitValueMapAsDefaultID(pointNode, "inputHeight", "judgmentMainPosition", value => 720.0 - value); SaveIntMap(frameNode, "level-frame"); SaveValueMap(frameNode, "level-framerate"); @@ -565,60 +566,60 @@ SaveValueMap(pointNode, "levelPosition1"); SaveValueMap(pointNode, "levelLength"); SaveValueMap(pointNode, "levelHeight"); - SaveAltMap("alt-level"); + SaveAltMap(lambdaNode, "alt-level"); SaveIntMap(pointNode, "bandSystem"); SaveValueMap(pointNode, "bandPosition0"); SaveValueMap(pointNode, "bandPosition1"); SaveIntMap(frameNode, "band-frame"); SaveValueMap(frameNode, "band-framerate"); - SaveValueMapAsDefaultID("binBandLength", "binLength"); - SaveValueMapAsDefaultID("binBandHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "binBandLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binBandHeight", "binHeight"); SaveValueMap(pointNode, "enlargeBand"); - SaveAltMap("alt-band", 2); + SaveAltMap(lambdaNode, "alt-band", 2); SaveIntMap(pointNode, "judgmentMeterSystem"); SaveValueMap(pointNode, "judgmentMeterPosition0"); SaveValueMap(pointNode, "judgmentMeterPosition1"); - SaveValueMapAsDefaultID("binJudgmentMeterLength", "binLength"); - SaveValueMapAsDefaultID("binJudgmentMeterHeight", "binHeight"); - SaveValueMapAsDefaultID("judgmentMeterFrontDrawingLength", "binJudgmentMeterLength"); - SaveValueMapAsDefaultID("judgmentMeterUnitDrawingLength", "binJudgmentMeterLength"); - SaveAltMap("alt-judgment-meter", 3); + SaveValueMapAsDefaultID(pointNode, "binJudgmentMeterLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binJudgmentMeterHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "judgmentMeterFrontDrawingLength", "binJudgmentMeterLength"); + SaveValueMapAsDefaultID(pointNode, "judgmentMeterUnitDrawingLength", "binJudgmentMeterLength"); + SaveAltMap(lambdaNode, "alt-judgment-meter", 3); SaveIntMap(pointNode, "standSystem"); SaveValueMap(pointNode, "standPosition0"); SaveValueMap(pointNode, "standPosition1"); - SaveValueMapAsDefaultID("binStandLength", "binLength"); - SaveValueMapAsDefaultID("binStandHeight", "binHeight"); - SaveValueMapAsDefaultID("standCommaDrawingLength", "binLength"); - SaveAltMap("alt-stand"); + SaveValueMapAsDefaultID(pointNode, "binStandLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binStandHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "standCommaDrawingLength", "binLength"); + SaveAltMap(lambdaNode, "alt-stand"); SaveIntMap(pointNode, "pointSystem"); SaveValueMap(pointNode, "pointPosition0"); SaveValueMap(pointNode, "pointPosition1"); - SaveValueMapAsDefaultID("binPointLength", "binLength"); - SaveValueMapAsDefaultID("binPointHeight", "binHeight"); - SaveValueMapAsDefaultID("pointStopPointDrawingLength", "stopPointDrawingLength"); - SaveValueMapAsDefaultID("pointUnitDrawingLength", "binPointLength"); - SaveAltMap("alt-point"); + SaveValueMapAsDefaultID(pointNode, "binPointLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binPointHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "pointStopPointDrawingLength", "stopPointDrawingLength"); + SaveValueMapAsDefaultID(pointNode, "pointUnitDrawingLength", "binPointLength"); + SaveAltMap(lambdaNode, "alt-point"); SaveIntMap(pointNode, "bpmSystem"); SaveValueMap(pointNode, "bpmPosition0"); SaveValueMap(pointNode, "bpmPosition1"); - SaveValueMapAsDefaultID("binBPMLength", "binLength"); - SaveValueMapAsDefaultID("binBPMHeight", "binHeight"); - SaveValueMapAsDefaultID("bpmUnitDrawingLength", "binBPMLength"); - SaveAltMap("alt-bpm"); + SaveValueMapAsDefaultID(pointNode, "binBPMLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binBPMHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "bpmUnitDrawingLength", "binBPMLength"); + SaveAltMap(lambdaNode, "alt-bpm"); SaveIntMap(pointNode, "multiplierSystem"); SaveValueMap(pointNode, "multiplierPosition0"); SaveValueMap(pointNode, "multiplierPosition1"); - SaveValueMapAsDefaultID("binMultiplierLength", "binLength"); - SaveValueMapAsDefaultID("binMultiplierHeight", "binHeight"); - SaveValueMapAsDefaultID("multiplierStopPointDrawingLength", "stopPointDrawingLength"); - SaveValueMapAsDefaultID("multiplierUnitDrawingLength", "binMultiplierLength"); - SaveAltMap("alt-multiplier"); + SaveValueMapAsDefaultID(pointNode, "binMultiplierLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binMultiplierHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "multiplierStopPointDrawingLength", "stopPointDrawingLength"); + SaveValueMapAsDefaultID(pointNode, "multiplierUnitDrawingLength", "binMultiplierLength"); + SaveAltMap(lambdaNode, "alt-multiplier"); SaveIntMap(frameNode, "note-hit-frame"); SaveValueMap(frameNode, "note-hit-framerate"); @@ -631,20 +632,20 @@ SaveValueMap(pointNode, "judgmentPaintPosition1"); SaveValueMap(pointNode, "judgmentPaintLength"); SaveValueMap(pointNode, "judgmentPaintHeight"); - SaveSplitValueMap("hitNotePaintLength"); - SaveSplitValueMap("hitNotePaintHeight"); - SaveSplitValueMap("hitLongNotePaintLength"); - SaveSplitValueMap("hitLongNotePaintHeight"); - SaveSplitValueMapAsDefaultID("hitNotePaintPosition0", "hitNotePaintLength1", value => -value / 2); - SaveSplitValueMapAsDefaultID("hitNotePaintPosition1", "hitNotePaintHeight1", value => -value / 2); - SaveSplitValueMapAsDefaultID("hitLongNotePaintPosition0", "hitLongNotePaintLength1", value => -value / 2); - SaveSplitValueMapAsDefaultID("hitLongNotePaintPosition1", "hitLongNotePaintHeight1", value => -value / 2); + SaveSplitValueMap(pointNode, "hitNotePaintLength"); + SaveSplitValueMap(pointNode, "hitNotePaintHeight"); + SaveSplitValueMap(pointNode, "hitLongNotePaintLength"); + SaveSplitValueMap(pointNode, "hitLongNotePaintHeight"); + SaveSplitValueMapAsDefaultID(pointNode, "hitNotePaintPosition0", "hitNotePaintLength1", value => -value / 2); + SaveSplitValueMapAsDefaultID(pointNode, "hitNotePaintPosition1", "hitNotePaintHeight1", value => -value / 2); + SaveSplitValueMapAsDefaultID(pointNode, "hitLongNotePaintPosition0", "hitLongNotePaintLength1", value => -value / 2); + SaveSplitValueMapAsDefaultID(pointNode, "hitLongNotePaintPosition1", "hitLongNotePaintHeight1", value => -value / 2); SaveIntMap(frameNode, "hit-input-paint-frame"); SaveValueMap(frameNode, "hit-input-paint-framerate"); - SaveSplitValueMap("hitInputPaintPosition0"); - SaveSplitValueMap("hitInputPaintPosition1"); - SaveSplitValueMap("hitInputPaintLength"); - SaveSplitValueMap("hitInputPaintHeight"); + SaveSplitValueMap(pointNode, "hitInputPaintPosition0"); + SaveSplitValueMap(pointNode, "hitInputPaintPosition1"); + SaveSplitValueMap(pointNode, "hitInputPaintLength"); + SaveSplitValueMap(pointNode, "hitInputPaintHeight"); SaveIntMap(frameNode, "long-note-hit-loop-frame"); SaveIntMap(frameNode, "last-enlarged-band-loop-frame"); SaveIntMap(frameNode, "last-frame"); @@ -654,7 +655,7 @@ SaveValueMap(pointNode, "lastPosition1"); SaveValueMap(pointNode, "lastLength"); SaveValueMap(pointNode, "lastHeight"); - SaveAltMap("alt-last", 2); + SaveAltMap(lambdaNode, "alt-last", 2); SaveIntMap(frameNode, "band!-frame"); SaveValueMap(frameNode, "band!-framerate"); SaveIntMap(pointNode, "band!System"); @@ -662,12 +663,20 @@ SaveValueMap(pointNode, "band!Position1"); SaveValueMap(pointNode, "band!Length"); SaveValueMap(pointNode, "band!Height"); - SaveAltMap("alt-band!", 2); + SaveAltMap(lambdaNode, "alt-band!", 2); + SaveIntMapAsDefaultID(frameNode, "yell!-frame", "band!-frame"); + SaveValueMapAsDefaultID(frameNode, "yell!-framerate", "band!-framerate"); + SaveIntMapAsDefaultID(pointNode, "yell!System","band!System"); + SaveValueMapAsDefaultID(pointNode, "yell!Position0", "band!Position0"); + SaveValueMapAsDefaultID(pointNode, "yell!Position1", "band!Position1"); + SaveValueMapAsDefaultID(pointNode, "yell!Length", "band!Length"); + SaveValueMapAsDefaultID(pointNode, "yell!Height", "band!Height"); + SaveAltMapAsDefaultID(lambdaNode, "alt-yell!", "alt-band!"); SaveIntMap(pointNode, "netSystem"); SaveValueMap(pointNode, "netPosition0"); SaveValueMap(pointNode, "netPosition1"); - SaveAltMap("alt-net"); + SaveAltMap(lambdaNode, "alt-net"); SaveIntMap(frameNode, "auto-main-frame"); SaveValueMap(frameNode, "auto-main-framerate"); @@ -676,7 +685,7 @@ SaveValueMap(pointNode, "autoMainPosition1"); SaveValueMap(pointNode, "autoMainLength"); SaveValueMap(pointNode, "autoMainHeight"); - SaveAltMap("alt-auto-main"); + SaveAltMap(lambdaNode, "alt-auto-main"); SaveIntMap(frameNode, "pause-frame", 1); SaveIntMap(pointNode, "pauseSystem"); @@ -684,14 +693,14 @@ SaveValueMap(pointNode, "pausePosition1"); SaveValueMap(pointNode, "pauseLength"); SaveValueMap(pointNode, "pauseHeight"); - SaveAltMap("alt-pause", 2); + SaveAltMap(lambdaNode, "alt-pause", 2); SaveIntMap(pointNode, "statusSystem"); SaveValueMap(pointNode, "statusPosition0"); SaveValueMap(pointNode, "statusPosition1"); SaveValueMap(pointNode, "statusLength"); SaveValueMap(pointNode, "statusHeight"); - SaveAltMap("alt-status"); + SaveAltMap(lambdaNode, "alt-status"); SaveIntMap(pointNode, "statusSliderSystem"); SaveValueMap(pointNode, "statusSliderPosition0"); @@ -700,103 +709,103 @@ SaveValueMap(pointNode, "statusSliderHeight"); SaveValueMap(pointNode, "statusSliderContentsLength"); SaveValueMap(pointNode, "statusSliderContentsHeight"); - SaveAltMap("alt-status-slider"); + SaveAltMap(lambdaNode, "alt-status-slider"); SaveIntMap(pointNode, "hmsSystem"); SaveValueMap(pointNode, "hmsPosition0"); SaveValueMap(pointNode, "hmsPosition1"); - SaveValueMapAsDefaultID("binHmsLength", "binLength"); - SaveValueMapAsDefaultID("binHmsHeight", "binHeight"); - SaveValueMapAsDefaultID("hmsColonDrawingLength", "binLength"); - SaveValueMapAsDefaultID("hmsSlashDrawingLength", "binLength"); - SaveAltMap("alt-hms"); + SaveValueMapAsDefaultID(pointNode, "binHmsLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHmsHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "hmsColonDrawingLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "hmsSlashDrawingLength", "binLength"); + SaveAltMap(lambdaNode, "alt-hms"); SaveIntMap(pointNode, "judgmentPointsSystem"); SaveValueMap(pointNode, "judgmentPointsPosition0"); SaveValueMap(pointNode, "judgmentPointsPosition1"); SaveValueMap(pointNode, "judgmentPointsLength"); SaveValueMap(pointNode, "judgmentPointsHeight"); - SaveAltMap("alt-judgment-points"); + SaveAltMap(lambdaNode, "alt-judgment-points"); SaveIntMap(frameNode, "judgment-main-frame"); SaveValueMap(frameNode, "judgment-main-framerate"); - SaveSplitValueMap("judgmentMainPosition1"); - SaveSplitValueMap("judgmentMainHeight"); + SaveSplitValueMap(pointNode, "judgmentMainPosition1"); + SaveSplitValueMap(pointNode, "judgmentMainHeight"); SaveIntMap(frameNode, "main-judgment-meter-frame"); SaveValueMap(frameNode, "main-judgment-meter-framerate"); - SaveSplitValueMap("mainJudgmentMeterPosition1"); - SaveSplitValueMap("mainJudgmentMeterHeight"); + SaveSplitValueMap(pointNode, "mainJudgmentMeterPosition1"); + SaveSplitValueMap(pointNode, "mainJudgmentMeterHeight"); SaveIntMap(pointNode, "audioMultiplierSystem"); SaveValueMap(pointNode, "audioMultiplierPosition0"); SaveValueMap(pointNode, "audioMultiplierPosition1"); - SaveValueMapAsDefaultID("binAudioMultiplierLength", "binLength"); - SaveValueMapAsDefaultID("binAudioMultiplierHeight", "binHeight"); - SaveValueMapAsDefaultID("audioMultiplierStopPointDrawingLength", "stopPointDrawingLength"); - SaveValueMapAsDefaultID("audioMultiplierUnitDrawingLength", "binAudioMultiplierLength"); - SaveAltMap("alt-audio-multiplier"); + SaveValueMapAsDefaultID(pointNode, "binAudioMultiplierLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binAudioMultiplierHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "audioMultiplierStopPointDrawingLength", "stopPointDrawingLength"); + SaveValueMapAsDefaultID(pointNode, "audioMultiplierUnitDrawingLength", "binAudioMultiplierLength"); + SaveAltMap(lambdaNode, "alt-audio-multiplier"); SaveIntMap(pointNode, "hitPointsVisualizerSystem"); SaveValueMap(pointNode, "hitPointsVisualizerPosition0"); SaveValueMap(pointNode, "hitPointsVisualizerPosition1"); - SaveValueMapAsDefaultID("binHitPointsVisualizerLength", "binLength"); - SaveValueMapAsDefaultID("binHitPointsVisualizerHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "binHitPointsVisualizerLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHitPointsVisualizerHeight", "binHeight"); SaveValueMap(pointNode, "hitPointsVisualizerUnitDrawingLength"); - SaveAltMap("alt-hit-points-visualizer"); + SaveAltMap(lambdaNode, "alt-hit-points-visualizer"); SaveIntMap(pointNode, "highestJudgmentValueSystem"); SaveValueMap(pointNode, "highestJudgmentValuePosition0"); SaveValueMap(pointNode, "highestJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binHighestJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binHighestJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-highest-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binHighestJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHighestJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-highest-judgment-value"); SaveIntMap(pointNode, "higherJudgmentValueSystem"); SaveValueMap(pointNode, "higherJudgmentValuePosition0"); SaveValueMap(pointNode, "higherJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binHigherJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binHigherJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-higher-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binHigherJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHigherJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-higher-judgment-value"); SaveIntMap(pointNode, "highJudgmentValueSystem"); SaveValueMap(pointNode, "highJudgmentValuePosition0"); SaveValueMap(pointNode, "highJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binHighJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binHighJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-high-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binHighJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHighJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-high-judgment-value"); SaveIntMap(pointNode, "lowJudgmentValueSystem"); SaveValueMap(pointNode, "lowJudgmentValuePosition0"); SaveValueMap(pointNode, "lowJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binLowJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binLowJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-low-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binLowJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binLowJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-low-judgment-value"); SaveIntMap(pointNode, "lowerJudgmentValueSystem"); SaveValueMap(pointNode, "lowerJudgmentValuePosition0"); SaveValueMap(pointNode, "lowerJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binLowerJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binLowerJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-lower-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binLowerJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binLowerJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-lower-judgment-value"); SaveIntMap(pointNode, "lowestJudgmentValueSystem"); SaveValueMap(pointNode, "lowestJudgmentValuePosition0"); SaveValueMap(pointNode, "lowestJudgmentValuePosition1"); - SaveValueMapAsDefaultID("binLowestJudgmentValueLength", "binLength"); - SaveValueMapAsDefaultID("binLowestJudgmentValueHeight", "binHeight"); - SaveAltMap("alt-lowest-judgment-value"); + SaveValueMapAsDefaultID(pointNode, "binLowestJudgmentValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binLowestJudgmentValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-lowest-judgment-value"); SaveIntMap(pointNode, "highestBandSystem"); SaveValueMap(pointNode, "highestBandPosition0"); SaveValueMap(pointNode, "highestBandPosition1"); - SaveValueMapAsDefaultID("binHighestBandLength", "binLength"); - SaveValueMapAsDefaultID("binHighestBandHeight", "binHeight"); - SaveAltMap("alt-highest-band"); + SaveValueMapAsDefaultID(pointNode, "binHighestBandLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHighestBandHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-highest-band"); - SaveValueMapAsDefaultID("limiterPosition1", "mainPosition1"); + SaveValueMapAsDefaultID(pointNode, "limiterPosition1", "mainPosition1"); SaveValueMap(pointNode, "limiterLength", 1.0); - SaveValueMapAsDefaultID("limiterHeight", "mainHeight"); + SaveValueMapAsDefaultID(pointNode, "limiterHeight", "mainHeight"); SaveIntMap(pointNode, "judgmentVisualizerSystem"); SaveValueMap(pointNode, "judgmentVisualizerPosition0"); @@ -805,50 +814,50 @@ SaveValueMap(pointNode, "judgmentVisualizerHeight"); SaveValueMap(pointNode, "judgmentVisualizerContentsLength"); SaveValueMap(pointNode, "judgmentVisualizerContentsHeight"); - SaveAltMap("alt-judgment-visualizer"); + SaveAltMap(lambdaNode, "alt-judgment-visualizer"); SaveIntMap(pointNode, "hunterSystem"); SaveValueMap(pointNode, "hunterPosition0"); SaveValueMap(pointNode, "hunterPosition1"); - SaveValueMapAsDefaultID("binHunterLength", "binLength"); - SaveValueMapAsDefaultID("binHunterHeight", "binHeight"); - SaveValueMapAsDefaultID("hunterFrontDrawingLength", "binHunterLength"); - SaveAltMap("alt-hunter"); + SaveValueMapAsDefaultID(pointNode, "binHunterLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binHunterHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "hunterFrontDrawingLength", "binHunterLength"); + SaveAltMap(lambdaNode, "alt-hunter"); SaveIntMap(pointNode, "inputVisualizerSystem"); SaveValueMap(pointNode, "inputVisualizerPosition0"); SaveValueMap(pointNode, "inputVisualizerPosition1"); - SaveValueMapAsDefaultID("binInputVisualizerLength", "binLength"); - SaveValueMapAsDefaultID("binInputVisualizerHeight", "binHeight"); - SaveAltMap("alt-input-visualizer"); + SaveValueMapAsDefaultID(pointNode, "binInputVisualizerLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binInputVisualizerHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-input-visualizer"); SaveIntMap(pointNode, "earlyValueSystem"); SaveValueMap(pointNode, "earlyValuePosition0"); SaveValueMap(pointNode, "earlyValuePosition1"); - SaveValueMapAsDefaultID("binEarlyValueLength", "binLength"); - SaveValueMapAsDefaultID("binEarlyValueHeight", "binHeight"); - SaveAltMap("alt-early-value"); + SaveValueMapAsDefaultID(pointNode, "binEarlyValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binEarlyValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-early-value"); SaveIntMap(pointNode, "lateValueSystem"); SaveValueMap(pointNode, "lateValuePosition0"); SaveValueMap(pointNode, "lateValuePosition1"); - SaveValueMapAsDefaultID("binLateValueLength", "binLength"); - SaveValueMapAsDefaultID("binLateValueHeight", "binHeight"); - SaveAltMap("alt-late-value"); + SaveValueMapAsDefaultID(pointNode, "binLateValueLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binLateValueHeight", "binHeight"); + SaveAltMap(lambdaNode, "alt-late-value"); SaveIntMap(pointNode, "judgmentVSVisualizerSystem"); SaveValueMap(pointNode, "judgmentVSVisualizerPosition0"); SaveValueMap(pointNode, "judgmentVSVisualizerPosition1"); - SaveValueMapAsDefaultID("binJudgmentVSVisualizerLength", "binLength"); - SaveValueMapAsDefaultID("binJudgmentVSVisualizerHeight", "binHeight"); - SaveValueMapAsDefaultID("judgmentVSVisualizerStopPointDrawingLength", "stopPointDrawingLength"); - SaveAltMap("alt-judgment-vs-visualizer"); + SaveValueMapAsDefaultID(pointNode, "binJudgmentVSVisualizerLength", "binLength"); + SaveValueMapAsDefaultID(pointNode, "binJudgmentVSVisualizerHeight", "binHeight"); + SaveValueMapAsDefaultID(pointNode, "judgmentVSVisualizerStopPointDrawingLength", "stopPointDrawingLength"); + SaveAltMap(lambdaNode, "alt-judgment-vs-visualizer"); SaveValueMap(pointNode, "judgmentInputVisualizerPosition0"); SaveValueMap(pointNode, "judgmentInputVisualizerPosition1"); SaveValueMap(pointNode, "judgmentInputVisualizerLength"); SaveValueMap(pointNode, "judgmentInputVisualizerHeight"); - SaveAltMap("alt-judgment-input-visualizer"); + SaveAltMap(lambdaNode, "alt-judgment-input-visualizer"); SaveValueMap(pointNode, "pausedUnpausePosition0", 539); SaveValueMap(pointNode, "pausedUnpausePosition1", 239); @@ -975,9 +984,28 @@ SaveIntMapImpl(text, target, IntMap, IntCallMap); } } - void SaveSplitValueMap(string target, double defaultValue = default) + void SaveIntMapAsDefaultID(YamlNode yamlNode, string target, string defaultID) { - var data = GetCalledData(pointNode, target); + var text = Utility.GetText(yamlNode, target); + if (string.IsNullOrEmpty(text)) + { + if (IntMap.TryGetValue(defaultID, out var defaultValue)) + { + IntMap[target] = defaultValue; + } + if (IntCallMap.TryGetValue(defaultID, out var defaultCall)) + { + IntCallMap[target] = defaultCall; + } + } + else + { + SaveIntMapImpl(text, target, IntMap, IntCallMap); + } + } + void SaveSplitValueMap(YamlNode yamlNode, string target, double defaultValue = default) + { + var data = GetCalledData(yamlNode, target); if (data != null) { string lastData = null; @@ -997,9 +1025,9 @@ } } } - void SaveSplitValueMapAsDefaultID(string target, string defaultValueID = null, Func valueMapping = null) + void SaveSplitValueMapAsDefaultID(YamlNode yamlNode, string target, string defaultID = null, Func valueMapping = null) { - var data = GetCalledData(pointNode, target); + var data = GetCalledData(yamlNode, target); if (data != null) { string lastData = null; @@ -1015,10 +1043,14 @@ { for (var i = MaxNoteID - 1; i >= 0; --i) { - if (ValueMap.TryGetValue(defaultValueID, out var defaultValue)) + if (ValueMap.TryGetValue(defaultID, out var defaultValue)) { ValueMap[$"{target}{i + 1}"] = valueMapping?.Invoke(defaultValue) ?? defaultValue; } + if (ValueCallMap.TryGetValue(defaultID, out var defaultCall)) + { + ValueCallMap[$"{target}{i + 1}"] = defaultCall; + } } } } @@ -1034,24 +1066,28 @@ SaveValueMapImpl(text, target, ValueMap, ValueCallMap); } } - void SaveValueMapAsDefaultID(string target, string defaultValueID, Func valueMapping = null) + void SaveValueMapAsDefaultID(YamlNode yamlNode, string target, string defaultID, Func valueMapping = null) { - var text = Utility.GetText(pointNode, target); + var text = Utility.GetText(yamlNode, target); if (string.IsNullOrEmpty(text)) { - if (ValueMap.TryGetValue(defaultValueID, out var defaultValue)) + if (ValueMap.TryGetValue(defaultID, out var defaultValue)) { ValueMap[target] = valueMapping?.Invoke(defaultValue) ?? defaultValue; } + if (ValueCallMap.TryGetValue(defaultID, out var defaultCall)) + { + ValueCallMap[target] = defaultCall; + } } else { SaveValueMapImpl(text, target, ValueMap, ValueCallMap); } } - void SaveAltMap(string target, int defaultValue = default) + void SaveAltMap(YamlNode yamlNode, string target, int defaultValue = default) { - var text = Utility.GetText(lambdaNode, target); + var text = Utility.GetText(yamlNode, target); if (string.IsNullOrEmpty(text)) { AltMap[target] = defaultValue; @@ -1061,6 +1097,26 @@ SaveAltImpl(text, target, AltMap, AltCallMap); } } + void SaveAltMapAsDefaultID(YamlNode yamlNode, string target, string defaultID) + { + var text = Utility.GetText(yamlNode, target); + if (string.IsNullOrEmpty(text)) + { + if (AltMap.TryGetValue(defaultID, out var defaultValue)) + { + AltMap[target] = defaultValue; + } + if (AltCallMap.TryGetValue(defaultID, out var defaultCall)) + { + AltCallMap[target] = defaultCall; + } + } + else + { + SaveAltImpl(text, target, AltMap, AltCallMap); + } + } + for (var i = PaintProperties.Length - 1; i >= 0; --i) { var data = GetCalledData(pointNode, $"paintProperty{i}");